blob: 37bcd9046f67f273661afbc8da36bdc42b4716be [file] [log] [blame]
Werner Lemberg06339952015-03-11 06:30:23 +010012015-03-11 Werner Lemberg <wl@gnu.org>
2
3 Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.
4
5 CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
6 builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
7 builds/mac/FreeType.m68k_far.make.txt,
8 builds/mac/FreeType.ppc_carbon.make.txt,
9 builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf,
10 builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
11 builds/wince/vc2008-ce/freetype.vcproj,
12 builds/windows/vc2005/freetype.vcproj,
13 builds/windows/vc2008/freetype.vcproj,
14 builds/windows/vc2010/freetype.vcxproj,
15 builds/windows/vc2010/freetype.vcxproj.filters,
16 builds/windows/visualc/freetype.dsp,
17 builds/windows/visualc/freetype.vcproj,
18 builds/windows/visualce/freetype.dsp,
19 builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
20 include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
21 src/base/ftfntfmt.c, vms_make.com: Updated.
22
Alexei Podtelezhnikov6b832c82015-03-10 23:25:49 -0400232015-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
24
25 Fix Savannah bug #44412 (part 1).
26
27 * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.
28
Werner Lembergeee7d8b2015-03-10 11:15:15 +0100292015-03-10 Werner Lemberg <wl@gnu.org>
30
31 [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.
32
33 * include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
34 Update all callers.
35
36 * docs/CHANGES: Updated.
37
Werner Lemberg493cc032015-03-06 05:38:31 +0100382015-03-06 Werner Lemberg <wl@gnu.org>
39
40 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
41
42 Found by Alexei.
43
Alexei Podtelezhnikovdd7498d2015-03-05 22:51:36 -0500442015-03-05 Alexei Podtelezhnikov <apodtele@gmail.com>
45
46 * src/base/ftstroke.c: Simplify.
47
Werner Lemberg328b7922015-03-04 08:40:23 +0100482015-03-04 Werner Lemberg <wl@gnu.org>
49
50 [truetype] Some fixes and code refactoring in `ttgxvar.c'.
51
52 * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
53 of `point_cnt' if two bytes are read.
54 Use a more vertical coding style.
55 (ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
56 Use a more vertical coding style.
57
Werner Lemberga374c9c2015-03-03 11:23:45 +0100582015-03-03 Werner Lemberg <wl@gnu.org>
59
60 [autofit] Fix Savannah bug #44241.
61
62 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
63 with less than 3 points.
64
Werner Lemberga07029e2015-03-02 06:54:08 +0100652015-03-02 Werner Lemberg <wl@gnu.org>
66
67 Simplify `TYPEOF' macro.
68
69 No need for two arguments.
70
71 * include/config/ftconfig.h, builds/unix/ftconfig.in,
72 builds/vms/ftconfig.h (TYPEOF): Updated.
73
74 * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
75 src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.
76
772015-03-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg4b9234b2015-02-25 06:31:43 +010078
Werner Lemberg851e8152015-03-01 19:27:09 +010079 Various compiler warning fixes for `make multi'.
80
81 * src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
82 src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
83 af_latin_hint_edges), src/autofit/aflatin2.c
84 (af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
85 as `static'.
86
87 * src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
88 Removed. Unused.
89 * src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
90 * src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed. Unused.
91
92 * src/cff/cf2intrp.c: Include `cf2intrp.h'.
93 * src/cff/cffdrivr.c (PAIR_TAG): Removed. Unused.
94
95 * src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed. Unused.
96
97 * src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.
98
99 * src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
100 Removed. Unused.
101
102 * src/raster/ftraster.c (Render_Glyph): Declare as `static'.
103
104 * src/sfnt/ttpost.c (load_format_20): Fix signedness warning.
105
106 * src/truetype/ttdriver.c (PAIR_TAG): Removed. Unused.
107 * src/truetype/ttsubpix.c (is_member_of_family_class,
108 is_member_of_style_class): Declare as `static'.
109
110 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
111 as `static'.
112 * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
113 `static'.
114 (T1_FIELD_COUNT): Removed. Unused.
115 * src/type1/t1parse.h (T1_Done_Table): Removed. Unused.
116
117 * src/type42/t42parse.c (T1_Done_Table): Removed. Unused.
118
1192015-02-25 Werner Lemberg <wl@gnu.org>
120
Werner Lemberg04c22372015-02-25 11:20:20 +0100121 [psaux] Signedness fixes.
122
123 * include/internal/psaux.h, src/psaux/afmparse.c,
124 src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
125 src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.
126
1272015-02-25 Werner Lemberg <wl@gnu.org>
128
Werner Lembergd25ec162015-02-25 09:19:59 +0100129 [otvalid] Signedness fixes.
130
131 * src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
132 src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
133 Apply.
134
1352015-02-25 Werner Lemberg <wl@gnu.org>
136
Werner Lemberg5c9d9bf2015-02-25 08:13:40 +0100137 * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.
138
1392015-02-25 Werner Lemberg <wl@gnu.org>
140
Werner Lemberg83d41812015-02-25 08:10:58 +0100141 [lzw] Signedness fixes.
142
143 * src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.
144
1452015-02-25 Werner Lemberg <wl@gnu.org>
146
Werner Lemberg17b62912015-02-25 07:53:09 +0100147 [gxvalid] Signedness fixes.
148
149 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
150 src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
151 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
152 src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
153 src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
154 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
155 src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.
156
1572015-02-25 Werner Lemberg <wl@gnu.org>
158
Werner Lemberg24e4e962015-02-25 06:57:16 +0100159 [cache] Signedness fixes.
160
161 * src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
162 src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.
163
1642015-02-25 Werner Lemberg <wl@gnu.org>
165
Werner Lemberg559727d2015-02-25 06:55:00 +0100166 Change dimension fields in `FTC_ImageTypeRec' to unsigned type.
167
168 This doesn't break ABI.
169
170 * include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
171 `width' and `height'.
172
173 * docs/CHANGES: Document it.
174
1752015-02-25 Werner Lemberg <wl@gnu.org>
176
Werner Lemberg4b9234b2015-02-25 06:31:43 +0100177 [cache] Don't use `labs'.
178
179 This is the only place in FreeType where this function was used.
180
181 * include/config/ftstdlib.h (ft_labs): Remove.
182
183 * src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
184 `FT_ABS'.
185
Werner Lemberg4d1f7af2015-02-23 07:04:36 +01001862015-02-23 Werner Lemberg <wl@gnu.org>
187
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100188 [cache] Replace `FT_PtrDist' with `FT_Offset'.
189
190 * src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
191 is a better choice for `hash' to hold a pointer than `FT_PtrDist'
192 (a.k.a. `ptrdiff_t'), especially since the latter is signed,
193 causing zillions of signedness warnings. [Note that `hash' was of
Werner Lemberg17b62912015-02-25 07:53:09 +0100194 type `FT_UInt32' before the change to `FT_PtrDist'.]
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100195 Update all users.
196
197 * src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
198 src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.
199
2002015-02-23 Werner Lemberg <wl@gnu.org>
201
Werner Lemberg4d1f7af2015-02-23 07:04:36 +0100202 [smooth, raster] Re-enable standalone compilation.
203
204 * src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
205 [_STANDALONE_]: Define macros.
206
207 * src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
208 FT_HYPOT) [_STANDALONE_]: Define macros.
209
Werner Lemberg03ccfd02015-02-22 08:25:16 +01002102015-02-22 Werner Lemberg <wl@gnu.org>
211
Werner Lembergcb13e712015-02-23 06:41:52 +0100212 [smooth] Signedness fixes.
213
214 * src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.
215
2162015-02-22 Werner Lemberg <wl@gnu.org>
217
Werner Lemberga974e9a2015-02-22 21:02:13 +0100218 * src/raster/ftraster.c: Use the file's typedefs everywhere.
219
2202015-02-22 Werner Lemberg <wl@gnu.org>
221
Werner Lembergb0ebcdc2015-02-22 20:42:49 +0100222 * src/sfnt/ttpost.c (load_format_20): Fix error tracing message.
223
224 Bug introduced 6 commits earlier.
225
2262015-02-22 Werner Lemberg <wl@gnu.org>
227
Werner Lemberg22b1d5c2015-02-22 20:41:03 +0100228 [pshinter] Fix thinko.
229
230 * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
231 check `count'.
232 Bug introduced two commits earlier.
233
2342015-02-22 Werner Lemberg <wl@gnu.org>
235
Werner Lembergca96fe02015-02-22 20:05:04 +0100236 [raster] Signedness fixes.
237
238 * src/raster/ftraster.c, src/raster/ftrend1.c: Apply.
239
2402015-02-22 Werner Lemberg <wl@gnu.org>
241
Werner Lemberg452066c2015-02-22 15:59:02 +0100242 [pshinter] Signedness fixes.
243
244 * src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
245 src/pshinter/pshrec.c: Apply.
246
2472015-02-22 Werner Lemberg <wl@gnu.org>
248
Werner Lemberg41c2ed82015-02-22 15:57:47 +0100249 [pshinter] Use macros for (unsigned) flags, not enumerations.
250
251 * src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
252 Updated.
253 * src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.
254
2552015-02-22 Werner Lemberg <wl@gnu.org>
256
Werner Lemberg25c2f882015-02-22 15:54:31 +0100257 * src/pshinter/pshrec.c: Simplify.
258 (ps_hints_open, ps_hints_stem): Remove switch statement.
259
2602015-02-22 Werner Lemberg <wl@gnu.org>
261
Werner Lemberg01f08422015-02-22 12:03:28 +0100262 [sfnt] Signedness fixes.
263
264 * src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
265 src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
266 src/sfnt/ttsbit.c: Apply.
267 * src/sfnt/sfdriver.c: Apply.
268 (sfnt_get_ps_name): Simplify.
269
2702015-02-22 Werner Lemberg <wl@gnu.org>
271
Werner Lemberg3c374c82015-02-22 09:16:53 +0100272 [bdf] Signedness fixes.
273
274 * src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
275 src/bdf/bdflib.c: Apply.
276
2772015-02-22 Werner Lemberg <wl@gnu.org>
278
Werner Lembergb13945a2015-02-22 09:15:47 +0100279 * src/bdf/bdflib.c (_bdf_atous): New function.
280 (_bdf_parse_glyphs, _bdf_parse_start): Use it.
281
2822015-02-22 Werner Lemberg <wl@gnu.org>
283
Werner Lemberg03ccfd02015-02-22 08:25:16 +0100284 [pcf] Signedness fixes.
285
286 * src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
287 * src/pcf/pcfread.c: Apply.
288 (pcf_get_encodings): Ignore invalid negative encoding offsets.
289
Werner Lemberg633a7292015-02-21 07:02:01 +01002902015-02-21 Werner Lemberg <wl@gnu.org>
291
Werner Lemberg3d7e53f2015-02-21 11:30:54 +0100292 * src/winfonts/winfnt.c: Signedness fixes.
293
2942015-02-21 Werner Lemberg <wl@gnu.org>
295
Werner Lemberg7b6b4172015-02-21 10:39:34 +0100296 [type42] Signedness fixes.
297
298 * src/type42/t42parse.c, src/type42/t42parse.h,
299 src/type42/t42types.h: Apply.
300
3012015-02-21 Werner Lemberg <wl@gnu.org>
302
Werner Lemberg8bfffb42015-02-21 09:52:29 +0100303 [pfr] Signedness fixes.
304
305 * src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
306 src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
307 src/pfr/pfrtypes.h: Apply.
308
3092015-02-21 Werner Lemberg <wl@gnu.org>
310
Werner Lemberg633a7292015-02-21 07:02:01 +0100311 [cff] Minor signedness fixes related to last commit.
312
313 * src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.
314
Werner Lemberg3a8d0532015-02-20 08:35:32 +01003152015-02-20 Werner Lemberg <wl@gnu.org>
316
Werner Lembergc00b05f2015-02-20 20:42:55 +0100317 [cff] Thinkos in bias handling.
318
319 Only the final result is always positive.
320
321 Bug introduced three commits earlier.
322
323 * src/cff/cffgload.c, src/cff/cffgload.h: Apply.
324
3252015-02-20 Werner Lemberg <wl@gnu.org>
326
Werner Lemberg2bf03eb2015-02-20 20:14:11 +0100327 [cid] Fix signedness issues and emit some better error codes.
328
329 * src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
330 src/cid/cidparse.h: Apply.
331 * src/cid/cidload.c: Apply.
332 (parse_fd_array): Reject negative values for number of dictionaries.
333 * src/cid/cidparse.c: Apply.
334 (cid_parser_new): Reject negative values for hex data length.
335
3362015-02-20 Werner Lemberg <wl@gnu.org>
337
Werner Lembergeb05bfb2015-02-20 08:37:35 +0100338 [cff] Signedness fixes for new engine.
339
340 * src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
341 src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.
342
3432015-02-20 Werner Lemberg <wl@gnu.org>
344
Werner Lemberg3a8d0532015-02-20 08:35:32 +0100345 [cff] Signedness fixes for basic infrastructure and old engine.
346
347 * include/internal/pshints.h, src/cff/cffdrivr.c,
348 src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
349 src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.
350
Werner Lemberg81e5ff52015-02-19 09:46:48 +01003512015-02-19 Werner Lemberg <wl@gnu.org>
352
Werner Lemberg3a1df3e2015-02-19 15:42:48 +0100353 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.
354
355 This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
356 version exists), but some fonts set it incorrectly.
357
358 Problem reported by Adam Twardoch <adam@fontlab.com>.
359
3602015-02-19 Werner Lemberg <wl@gnu.org>
361
Werner Lemberg93a884c2015-02-19 14:11:16 +0100362 [cff] Emit better error code for invalid private dict size.
363
364 * src/cff/cffparse.c (cff_parse_private_dict): Reject negative
365 values for size and offset.
366
3672015-02-19 Werner Lemberg <wl@gnu.org>
368
Werner Lembergb57bb112015-02-19 10:44:18 +0100369 [autofit] Fix signedness issues.
370
371 * src/autofit/afangles.c, src/autofit/afcjk.c,
372 src/autofit/afglobal.c, src/autofit/afhints.c,
373 src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
374 src/autofit/hbshim.c: Apply.
375
3762015-02-19 Werner Lemberg <wl@gnu.org>
377
Werner Lemberg81e5ff52015-02-19 09:46:48 +0100378 [autofit] Use macros for (unsigned) flags, not enumerations.
379
380 This harmonizes with other code in FreeType (and reduces the number
381 of necessary casts to avoid compiler warnings).
382
383 * src/autofit/afblue.hin: Make flag macros unsigned.
384 * src/autofit/afblue.h: Regenerated.
385
386 * src/autofit/afcjk.h: Replace flag enumeration with macros.
387 * src/autofit/afcjk.c: Updated.
388
389 * src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
390 macros.
391 * src/autofit/afhints.c: Updated.
392
393 * src/autofit/aflatin.h: Replace flag enumerations with macros.
394 * src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.
395
396 * src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.
397
Werner Lemberg6a0ded72015-02-18 08:51:22 +01003982015-02-18 Werner Lemberg <wl@gnu.org>
399
Werner Lemberg3b5f3322015-02-18 11:45:22 +0100400 [type1] Fix signedness issues.
401
402 * include/internal/psaux.h, include/internal/t1types.h,
403 src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
404 src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.
405
4062015-02-18 Werner Lemberg <wl@gnu.org>
407
Werner Lemberg272e3cd2015-02-18 11:38:46 +0100408 [psaux, type1] Fix minor AFM issues.
409
410 * include/internal/t1types.h (AFM_KernPairRec): Make indices
411 unsigned.
412 Update users.
413 (AFM_FontInfoRec): Make element counters unsigned.
414 Update users.
415 * src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
416 int.
417
418 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
419 Reject negative values for number of kerning elements.
420
421 * src/type1/t1afm.c, src/tools/test_afm.c: Updated.
422
4232015-02-18 Werner Lemberg <wl@gnu.org>
424
Werner Lemberg6bd7d282015-02-18 09:22:06 +0100425 Don't use `FT_PtrDist' for lengths.
426
427 Use FT_UInt instead.
428
429 * include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
430 T1_DecoderRec): Do it.
431
432 * include/internal/t1types.h (T1_FontRec): Ditto.
433
434 * src/cid/cidload.c (cid_parse_dict): Updated.
435 * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
436 * src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
437 * src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
438 parse_chharstrings, parse_dict): Ditto.
439 * src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
440 t42_parse_dict): Ditto.
441
4422015-02-18 Werner Lemberg <wl@gnu.org>
443
Werner Lemberg6a0ded72015-02-18 08:51:22 +0100444 * src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
445 This handles negative values better, avoiding many casts.
446
Werner Lemberg0a33a392015-02-17 08:03:05 +01004472015-02-17 Werner Lemberg <wl@gnu.org>
448
Werner Lembergd3240c52015-02-17 20:30:36 +0100449 [base] Fix Savannah bug #44284.
450
451 * src/base/ftcalc.c (FT_MulFix): Typos.
452
4532015-02-17 Werner Lemberg <wl@gnu.org>
454
Werner Lemberg1f7a4e12015-02-17 10:17:56 +0100455 [truetype] Finish compiler warning fixes for signedness issues.
456
457 * src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
458 src/truetype/ttsubpix.h: Apply.
459
4602015-02-17 Werner Lemberg <wl@gnu.org>
461
Werner Lemberg9daea2c2015-02-17 09:27:56 +0100462 * src/truetype/ttsubpix.c: Adding missing `static' keywords.
463
4642015-02-17 Werner Lemberg <wl@gnu.org>
465
Werner Lembergd9c3f152015-02-17 09:21:26 +0100466 [truetype] More signedness fixes.
467
468 * include/internal/tttypes.h, src/truetype/ttinterp.h,
469 src/truetype/ttobjs.h, src/truetype/ttinterp.c,
470 src/truetype/ttobjs.c: Apply.
471
4722015-02-17 Werner Lemberg <wl@gnu.org>
473
Werner Lemberg0a33a392015-02-17 08:03:05 +0100474 [truetype] Various signedness fixes.
475
476 * include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.
477
478 * src/truetype/ttgload.c: Apply.
479 (TT_Get_VMetrics): Protect against invalid ascenders and descenders
480 while constructing advance height.
481
Werner Lemberg587351b2015-02-16 07:03:22 +01004822015-02-16 Werner Lemberg <wl@gnu.org>
483
Werner Lemberg76abc752015-02-16 22:00:27 +0100484 [base] Finish compiler warning fixes for signedness issues.
485
486 * src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
487 Apply.
488
4892015-02-16 Werner Lemberg <wl@gnu.org>
490
Werner Lemberg10aa8582015-02-16 20:12:54 +0100491 * include/tttables.h (TT_OS2): `fsType' must be FT_UShort.
492
4932015-02-16 Werner Lemberg <wl@gnu.org>
494
Werner Lemberg2e814fc2015-02-16 20:05:08 +0100495 More minor signedness warning fixes.
496
497 * src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
498 src/base/ftutil.c: Apply.
499
5002015-02-16 Werner Lemberg <wl@gnu.org>
501
Werner Lemberg82235d02015-02-16 19:35:16 +0100502 Next round of minor compiler warning fixes.
503
504 * include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
505 type to `FT_Long'.
506 (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.
507
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100508 * include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
Werner Lemberg82235d02015-02-16 19:35:16 +0100509
510 * src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
511 Signedess fixes.
512
5132015-02-16 Werner Lemberg <wl@gnu.org>
514
Werner Lemberg3cfa4d12015-02-16 17:59:06 +0100515 Various minor signedness fixes.
516
517 * include/ftadvanc.h, include/internal/ftobjs.h,
518 src/base/ftgloadr.c, src/base/ftobjs.c: Apply.
519
5202015-02-16 Werner Lemberg <wl@gnu.org>
521
Werner Lemberg6f325c22015-02-16 11:31:32 +0100522 New `TYPEOF' macro.
523
524 This helps suppress signedness warnings, avoiding issues with
525 implicit conversion changes.
526
527 * include/config/ftconfig.h, builds/unix/ftconfig.in,
528 builds/vms/ftconfig.h (TYPEOF): Define.
529
530 * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
531 src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.
532
5332015-02-16 Werner Lemberg <wl@gnu.org>
534
Werner Lemberg1f377f02015-02-16 08:37:09 +0100535 * src/base/ftsystem.c: Use casts in standard C function wrappers.
536 (ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.
537
5382015-02-16 Werner Lemberg <wl@gnu.org>
539
Werner Lemberg0814b802015-02-16 07:29:53 +0100540 Fix Savannah bug #44261.
541
542 * builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
543 environment also while calling the configure script.
544
5452015-02-16 Werner Lemberg <wl@gnu.org>
546
Werner Lemberg587351b2015-02-16 07:03:22 +0100547 * include/internal/ftmemory.h: Add some `FT_Offset' casts.
548 (FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
549 FT_MEM_MOVE): Do it.
550
Werner Lemberg6d7d6362015-02-15 12:30:42 +01005512015-02-15 Werner Lemberg <wl@gnu.org>
552
Werner Lemberg48186b82015-02-16 06:37:36 +0100553 [base] Clean up signedness issues in `ftdbgmem.c'.
554
555 Also fix other minor issues.
556
557 * src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
558 with FT_Long for consistency.
559 (ft_mem_primes): Change type to `FT_Int'.
560 (ft_mem_closest_prime, ft_mem_table_set): Updated.
561
562 (ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
563 ft_mem_debug_realloc): Use `static' keyword and fix signedness
564 warnings where necessary.
565
566 (ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
567 ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
568 and add or remove casts to avoid signedness warnings.
569
5702015-02-15 Werner Lemberg <wl@gnu.org>
571
Werner Lemberg6d7d6362015-02-15 12:30:42 +0100572 [base] Clean up signedness in arithmetic functions.
573
574 This makes the code more readable and reduces compiler warnings.
575
576 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
577 FT_DivFix): Convert input parameters to unsigned, do the
578 computation, then convert the result back to signed.
579 (ft_corner_orientation): Fix casts.
580
Werner Lemberg92359bd2015-02-07 09:47:23 +01005812015-02-07 Werner Lemberg <wl@gnu.org>
582
583 [sfnt] Fix Savannah bug #44184.
584
585 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
586 longer reject `htmx' and `vmtx' tables with invalid length but
587 sanitize them.
588
Jon Anderson416d8792015-02-06 10:16:45 +01005892015-02-06 Jon Anderson <jon@websupergoo.com>
590
591 [truetype] Fix regression in the incremental glyph loader.
592
593 * src/truetype/ttgload.c (load_truetype_glyph): For incremental
594 fonts, the glyph index may be greater than the number of glyphs
595 indicated, so guard the check with a preprocessor conditional.
596
Werner Lembergb6cb4992015-02-06 08:46:06 +01005972015-02-06 Werner Lemberg <wl@gnu.org>
598
599 [autofit] Fix potential memory leak.
600
601 While this doesn't show up with FreeType, exactly the same code
602 leaks with ttfautohint's modified auto-hinter code (which gets used
603 in a slightly different way).
604
605 It certainly doesn't harm since it is similar to already existing
606 checks in the code for embedded arrays.
607
608 * src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
609 and `max_points' for all cases.
610
Werner Lemberg19146a52015-01-31 11:01:33 +01006112015-01-31 Werner Lemberg <wl@gnu.org>
612
613 [autofit] Add support for Thai script.
614
615 Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
616 zone characters!
617
618 * src/autofit/afblue.dat: Add blue zone data for Thai.
619
620 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
621
622 * src/autofit/afscript.h: Add Thai standard characters.
623
624 * src/autofit/afranges.c: Add Thai data.
625
626 * src/autofit/afstyles.h: Add Thai data.
627
Behdad Esfahbod264b5e42015-01-23 21:23:55 +01006282015-01-23 Behdad Esfahbod <behdad@behdad.org>
629
630 [raster] Handle `FT_RASTER_FLAG_AA' correctly.
631
632 This fixes a breakage caused by the commit `[raster] Remove
633 5-level gray AA mode from monochrome rasterizer.'.
634
Werner Lembergd2c531e2015-01-23 22:37:42 +0100635 Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.
Behdad Esfahbod264b5e42015-01-23 21:23:55 +0100636
637 * src/raster/ftraster.c (ft_black_render): Handle
638 `FT_RASTER_FLAG_AA'.
639
640 * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
641 remnants.
642
Werner Lemberg79a5ac62015-01-18 07:30:04 +01006432015-01-18 Werner Lemberg <wl@gnu.org>
644
645 * src/base/ftobjs.c (FT_New_Library): Fix compiler warning.
646
Chris Liddell942aa5f2015-01-18 07:29:48 +01006472015-01-18 Chris Liddell <chris.liddell@artifex.com>
648
649 [raster] Fix Savannah bug #44022.
650
651 Add fallback for glyphs with degenerate bounding boxes.
652
653 If a glyph has only one very narrow feature, the bbox can end up
654 with either the width or height of the bbox being 0, in which case
655 no raster memory is allocated and no attempt is made to render the
656 glyph. This is less than ideal when the drop-out compensation in
657 the rendering code would actually result in the glyph being
658 rendered.
659
660 This problem can be observed with the `I' glyph (gid 47) in the
661 Autodesk RomanS TrueType font.
662
663 * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
664 dimension is zero to explicitly round up/down (instead of simply
665 round).
666
Werner Lemberg50be00d2015-01-17 20:38:31 +01006672015-01-17 Werner Lemberg <wl@gnu.org>
668
669 Add some tools to handle yearly copyright notice updates.
670
671 We are now following the GNU guidelines: A new release automatically
672 means that the copyright year of all affected files gets updated; it
673 is no longer used to track years of modification changes.
674
675 * src/tools/update-copyright-year: New Perl script.
676 * src/tools/update-copyright: New shell script that calls
677 `update-copyright-year' on all files.
678 * src/tools/no-copyright: Exceptions that should not be handled by
679 `update-copyright'
680
Werner Lemberg4eff8542015-01-14 20:06:19 +01006812015-01-14 Werner Lemberg <wl@gnu.org>
682
683 * docs/CHANGES: Updated, using a description from Behdad.
684
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +01006852015-01-14 Behdad Esfahbod <behdad@behdad.org>
686
Behdad Esfahbod48c86622015-01-14 19:38:36 +0100687 * src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.
688
6892015-01-14 Behdad Esfahbod <behdad@behdad.org>
690
Behdad Esfahbod56ddafa2015-01-14 19:36:02 +0100691 [autofit] Add embedded array of segments and edges.
692
693 Avoids multiple mallocs per typical glyphs.
694
695 With this and recent changes to avoid mallocs, the thread-safe
696 stack-based loader is now as fast as the previous model that had one
697 cached singleton.
698
699 * src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
700 New macros.
701 (AF_AxisHintsRec): Add two arrays for segments and edges.
702
703 * src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
704 data if number of segments exceeds given threshold value.
705 (af_axis_hints_new_edge): Only allocate data if number of edges
706 exceeds given threshold value.
707 (af_glyph_hints_done): Updated.
708
7092015-01-14 Behdad Esfahbod <behdad@behdad.org>
710
Behdad Esfahbod6f16b102015-01-14 19:26:49 +0100711 [autofit] Add embedded arrays for points and contours.
712
713 This avoids at least two malloc calls for typical glyphs.
714
715 * src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
716 New macros.
717 (AF_GlyphHintsRec): Add two arrays for contours and points.
718
719 * src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
720 Updated.
721 (af_glyph_hints_reload): Only allocate data if number of contours or
722 points exceeds given threshold values.
723
7242015-01-14 Behdad Esfahbod <behdad@behdad.org>
725
Behdad Esfahbodc2733652015-01-14 19:16:12 +0100726 [autofit] Allocate hints object on the stack.
727
728 This avoids one malloc per load.
729
730 * src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
731 `AF_GlyphHints'.
732 Update prototype.
733
734 * src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
735 parameter instead of `FT_Memory'.
736 (af_loader_done): Directly reset `load_hints'.
737 (af_loader_load_g): Updated.
738
739 * src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
740 `hints' object.
741
7422015-01-14 Behdad Esfahbod <behdad@behdad.org>
743
Behdad Esfahboda4117fb2015-01-14 19:07:54 +0100744 [autofit] Reuse slot glyph loader.
745
746 No need to create a new glyph loader; we can reuse the one from
747 `slot->internal->loader'. It's hard to tell why it was written that
748 way originally, but new code looks sound and correct to me, and
749 avoids lots of allocations.
750
751 * src/autofit/afloader.c (af_loader_init): Change return type to
752 `void'.
753 Don't call `FT_GlyphLoader_New'.
754 (af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
755 (af_loader_load_g): Update code to use `internal->loader', which
756 doesn't need copying of data.
757
758 * src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
759 Update prototype.
760
761 * src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.
762
7632015-01-14 Behdad Esfahbod <behdad@behdad.org>
764
Behdad Esfahbodae6699f2015-01-14 18:55:39 +0100765 [autofit] Remove (unused) support for composite glyphs.
766
767 We never have to deal with composite glyphs in the autohinter, as
768 those will be loaded into FORMAT_OUTLINE by the recursed
769 `FT_Load_Glyph' function.
770
771 In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
772 FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
773 FT_LOAD_NO_HINTING:
774
775 /* resolve load flags dependencies */
776
777 if ( load_flags & FT_LOAD_NO_RECURSE )
778 load_flags |= FT_LOAD_NO_SCALE |
779 FT_LOAD_IGNORE_TRANSFORM;
780
781 if ( load_flags & FT_LOAD_NO_SCALE )
782 {
783 load_flags |= FT_LOAD_NO_HINTING |
784 FT_LOAD_NO_BITMAP;
785
786 load_flags &= ~FT_LOAD_RENDER;
787 }
788
789 and as such the auto-hinter is never called. Thus, the recursion in
790 `af_loader_load_g' never actually happens. So remove the depth
791 counter as well.
792
793 * src/autofit/afloader.c (af_loader_load_g): Remove `depth'
794 parameter.
795 <FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
796 (af_loader_load_glyph): Updated.
797
7982015-01-14 Behdad Esfahbod <behdad@behdad.org>
799
Behdad Esfahbodc242fe42015-01-14 18:48:14 +0100800 [raster] Fix uninitialized memory access.
801
802 Apparently `ras.cProfile' might be uninitialized. This will be the
803 case if `ras.top == ras.cProfile->offset', as can be seen in
804 `End_Profile'. The overshoot code introduced in a change `Fix B/W
805 rasterization of subglyphs with different drop-out modes.' (from
806 2009-06-18) violated this, accessing `ras.cProfile->flags'
807 unconditionally just before calling `End_Profile' (which then
808 detected that `cProfile' is uninitialized and didn't touch it).
809
810 This was harmless, and was not detected by valgrind before because
811 the objects were allocated on the `raster_pool', which was always
812 initialized. With recent change to allocate raster buffers on the
813 stack, valgrind now reported this invalid access.
814
815 * src/raster/ftraster.c (Convert_Glyph): Don't access an
816 uninitialized `cProfile'.
817
8182015-01-14 Behdad Esfahbod <behdad@behdad.org>
819
Behdad Esfahbodb2ba6862015-01-14 18:43:13 +0100820 [smooth] Fix uninitialized memory access.
821
822 Looks like `ras.span_y' could always be used without initialization.
823 This was never detected by valgrind before because the library-wide
824 `raster_pool' was used for the worker object and `raster_pool' was
825 originally zero'ed. But subsequent reuses of it were using `span_y'
826 uninitialized. With the recent change to not use `render_pool' and
827 allocate worker and buffer on the stack, valgrind now detects this
828 uninitialized access.
829
830 * src/smooth/ftgrays.c (gray_raster_render): Initialize
831 `ras.span_y'.
832
8332015-01-14 Behdad Esfahbod <behdad@behdad.org>
834
Behdad Esfahbod603292d2015-01-14 18:35:56 +0100835 [base] Don't initialize unused `driver->glyph_loader'.
836
837 * src/base/ftobjs.c (Destroy_Driver): Don't call
838 `FT_GlyphLoader_Done'.
839 (FT_Add_Module): Don't call `FT_GlyphLoader_New'.
840
8412015-01-14 Behdad Esfahbod <behdad@behdad.org>
842
Behdad Esfahbod51634252015-01-14 18:30:59 +0100843 [base] Don't allocate `library->raster_pool' anymore.
844
845 It's unused after the following commits:
846
847 [raster] Allocate render pool for mono rasterizer on the stack.
848 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
849
850 The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
851 serve, which is, to adjust the pool size. But the pool is now
852 allocated on the stack on demand.
853
854 * src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.
855
8562015-01-14 Behdad Esfahbod <behdad@behdad.org>
857
Behdad Esfahbod6dfdaf42015-01-14 18:21:13 +0100858 [base] Do not reorder library->renderers upon use.
859
860 Instead of keeping `library->renderers' in a MRU order, just leave
861 it as-is. The MRU machinery wasn't thread-safe.
862
863 With this patch, rasterizing glyphs from different faces from
864 different threads doesn't fail choosing rasterizer
865 (FT_Err_Cannot_Render_Glyph).
866
867 Easiest to see that crash was to add a `printf' (or otherwise let
868 thread yield in FT_Throw with debugging enabled).
869
870 * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
871 (FT_Outline_Render): Don't call `FT_Set_Renderer'.
872
8732015-01-14 Behdad Esfahbod <behdad@behdad.org>
874
Behdad Esfahboda773c302015-01-14 18:16:20 +0100875 [raster] Allocate render pool for mono rasterizer on the stack.
876
877 Instead of using the `render_pool' member of `FT_Library' that is
878 provided down to the rasterizer, completely ignore that and allocate
879 needed objects on the stack instead.
880
881 With this patch, rasterizing glyphs from different faces from
882 different threads doesn't crash in the monochrome rasterizer.
883
884 * src/raster/ftraster.c (black_TRaster): Remove `buffer',
885 `buffer_size', and `worker' members.
886
887 (ft_black_render): Create `buffer' locally.
888 (ft_black_reset): Updated.
889
8902015-01-14 Behdad Esfahbod <behdad@behdad.org>
891
Behdad Esfahbod8dc86352015-01-14 18:06:22 +0100892 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
893
894 It was off by default and couldn't be turned on at runtime. And the
895 smooth rasterizer superceded it over ten years ago. No point in
896 keeping. Comments suggested that it was there for compatibility
897 with FreeType 1.
898
899 550 lines down.
900
901 * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
902 RASTER_GRAY_LINES): Remove macros and all associated code.
903
904 (black_TWorker): Remove `gray_min_x' and `gray_max_x'.
905 (black_TRaster): Remove `grays' and `gray_width'.
906
907 (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
908 ft_black_render): Updated.
909
910 * src/raster/ftrend1.c (ft_raster1_render): Simplify code.
911 (ft_raster5_renderer_class): Removed.
912
9132015-01-14 Behdad Esfahbod <behdad@behdad.org>
914
Behdad Esfahbod747ae2c2015-01-14 17:54:26 +0100915 [smooth] Allocate render pool for smooth rasterizer on the stack.
916
917 Instead of using the `render_pool' member of `FT_Library' that is
918 provided down to the rasterizer, completely ignore that and allocate
919 needed objects on the stack instead.
920
921 With this patch, rasterizing glyphs from different faces from
922 different threads doesn't crash in the smooth rasterizer.
923
924 Bugs:
925
926 https://bugzilla.redhat.com/show_bug.cgi?id=678397
927 https://bugzilla.redhat.com/show_bug.cgi?id=1004315
928 https://bugzilla.redhat.com/show_bug.cgi?id=1165471
929 https://bugs.freedesktop.org/show_bug.cgi?id=69034
930
931 * src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
932 `buffer_size', `band_size', and `worker' members.
933
934 (gray_raster_render): Create `buffer', `buffer_size', and
935 `band_size' locally.
936 (gray_raster_reset): Updated.
937
9382015-01-14 Behdad Esfahbod <behdad@behdad.org>
939
Behdad Esfahbod531d4632015-01-14 17:46:55 +0100940 [truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
941
942 Previously the code had stipulation for using a per-TT_Size exec
943 context if `size->debug' was true. But there was no way that
944 `size->debug' could *ever* be true. As such, the code was always
945 using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
946 This was, clearly, not threadsafe.
947
948 With this patch, loading glyphs from different faces from different
949 threads doesn't crash in the bytecode loader code.
950
951 * src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
952 (TT_DriverRec): Remove `context' member.
953
954 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
955 `TT_ExecContext' code related to a global `TT_Driver' object.
956
957 (tt_driver_done): Don't remove `TT_ExecContext' object here but ...
958 (tt_size_done_bytecode): ... here.
959
960 (tt_driver_init): Don't create `TT_ExecContext' object here but ...
961 (tt_size_init_bytecode): ... here, only on demand.
962
963 * src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
964 code.
965 (TT_New_Context): Remove `TT_ExecContext' code related to a global
966 `TT_Driver' object.
967
968 * src/truetype/ttinterp.h: Updated.
969
970 * src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
971
9722015-01-14 Behdad Esfahbod <behdad@behdad.org>
973
Behdad Esfahbod89bc8d42015-01-14 16:01:19 +0100974 [autofit] Allocate AF_Loader on the stack instead of AF_Module.
975
976 Stop sharing a global `AF_Loader'. Allocate one on the stack during
977 glyph load.
978
979 Right now this results in about 25% slowdown, to be fixed in a
980 following commit.
981
982 With this patch loading glyphs from different faces from different
983 threads doesn't immediately crash in the autohinting loader code.
984
985 Bugs:
986
987 https://bugzilla.redhat.com/show_bug.cgi?id=1164941
988
989 * src/autofit/afloader.c (af_loader_init): Pass
990 `AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
991 (af_loader_reset, af_loader_load_glyph): Also pass `loader' as
992 argument.
993 (af_loader_done): Use `AF_Loader' instead of `AF_Module' as
994 argument.
995
996 * src/autofit/afmodule.c (af_autofitter_init): Don't call
997 `af_loader_init'.
998 (af_autofitter_done): Don't call `af_loader_done'.
999 (af_autofitter_load_glyph): Use a local `AF_Loader' object.
1000
1001 * src/autofit/afloader.h: Include `afmodule.h'.
1002 Update prototypes.
1003 Move typedef for `AF_Module' to...
1004
1005 * src/autofit/afmodule.h: ... this place.
1006 No longer include `afloader.h'.
1007
10082015-01-14 Behdad Esfahbod <behdad@behdad.org>
1009
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +01001010 * src/type42/t42objs.h (T42_DriverRec): Remove unused member.
1011
Werner Lemberg36d03c92015-01-12 11:26:30 +010010122015-01-12 Werner Lemberg <wl@gnu.org>
1013
1014 Fix Savannah bug #43976.
1015
1016 Assure that FreeType's internal include directories are found before
1017 `CPPFLAGS' (which might be set by the user in the environment), and
1018 `CPPFLAGS' before `CFLAGS'.
1019
1020 * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
1021 (FT_COMPILE): Make this a special variable for compiling only the
1022 files handled in `freetype.mk'.
1023 (.c.$O): Removed, unused.
1024
1025 * src/*/rules.mk (*_COMPILE): Fix order of include directories.
1026
Werner Lembergd03a67a2015-01-11 08:39:14 +010010272015-01-11 Werner Lemberg <wl@gnu.org>
1028
Werner Lemberg95b57052015-01-11 09:50:49 +01001029 [truetype] Prettyfing.
1030
1031 * src/truetype/ttinterp.c (project, dualproj, fast_project,
1032 fast_dualproj): Rename to...
1033 (PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.
1034
10352015-01-11 Werner Lemberg <wl@gnu.org>
1036
Werner Lembergea173c02015-01-11 08:58:54 +01001037 * src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.
1038
1039 Based on a patch from Behdad.
1040
10412015-01-11 Werner Lemberg <wl@gnu.org>
1042
Werner Lemberg628578c2015-01-11 08:53:31 +01001043 * src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.
1044
10452015-01-11 Werner Lemberg <wl@gnu.org>
1046
Werner Lemberg08e79092015-01-11 08:45:50 +01001047 * src/truetype/ttinterp.c (Normalize): Remove unused argument.
1048
10492015-01-11 Werner Lemberg <wl@gnu.org>
1050
Werner Lembergd03a67a2015-01-11 08:39:14 +01001051 [truetype] More macro expansions.
1052
Werner Lemberg4aaadf42015-01-11 08:42:28 +01001053 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
1054 expansion.
1055
10562015-01-11 Werner Lemberg <wl@gnu.org>
1057
1058 [truetype] More macro expansions.
1059
Werner Lembergd03a67a2015-01-11 08:39:14 +01001060 * src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
1061 adjusting funtion calls where necessary.
1062 (FT_UNUSED_ARG): Removed, no longer needed.
1063
Werner Lemberg1b4d68c2015-01-10 19:56:28 +010010642015-01-10 Werner Lemberg <wl@gnu.org>
1065
Werner Lembergeb341362015-01-11 00:23:27 +01001066 [truetype] More macro expansions.
1067
1068 Based on a patch from Behdad.
1069
1070 * src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
1071 `Ins_*' functions.
1072 (TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
1073 (ARRAY_BOUND_ERROR): Remove second definition, which is no longer
1074 needed.
1075 (Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
1076 (Ins_SxyTCA): New function.
1077
10782015-01-10 Werner Lemberg <wl@gnu.org>
1079
Werner Lemberg01be1302015-01-10 23:05:37 +01001080 [truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.
1081
1082 Behdad suggested this code simplification, and nobody objected...
1083
1084 * include/config/ftoption.h, devel/ftoption.h
1085 (TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.
1086
1087 * src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
1088 Remove related code.
1089 (ARRAY_BOUND_ERROR): Use do-while loop.
1090
10912015-01-10 Werner Lemberg <wl@gnu.org>
1092
Werner Lembergfae0c812015-01-10 20:23:10 +01001093 [truetype] More macro expansions.
1094
Werner Lemberg6cc1f122015-01-10 21:56:59 +01001095 * src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
1096 EXEC_ARG): Remove by replacing with expansion.
1097
10982015-01-10 Werner Lemberg <wl@gnu.org>
1099
1100 [truetype] More macro expansions.
1101
Werner Lemberg24681452015-01-10 21:53:48 +01001102 Based on a patch from Behdad.
1103
1104 * src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
1105 SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
1106 CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
1107 CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
1108 CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
1109 COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
1110 with expansion.
1111
1112 (Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
1113 CUR_fast_dualproj): Replace with macros `project', `dualproj',
1114 `fast_project', `fast_dualproj'.
1115
11162015-01-10 Werner Lemberg <wl@gnu.org>
1117
1118 [truetype] More macro expansions.
1119
Werner Lembergfae0c812015-01-10 20:23:10 +01001120 * src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
1121 with expansion.
1122
11232015-01-10 Werner Lemberg <wl@gnu.org>
1124
Werner Lemberg5a752f32015-01-10 20:08:35 +01001125 [truetype] Remove code for static TrueType interpreter.
1126
1127 This is a follow-up patch.
1128
1129 * src/truetype/ttinterp.c, src/truetype/ttinterp.h
1130 [TT_CONFIG_OPTION_STATIC_INTERPRETER,
1131 TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.
1132
11332015-01-10 Werner Lemberg <wl@gnu.org>
1134
Werner Lemberg1b4d68c2015-01-10 19:56:28 +01001135 * src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.
1136
1137 This starts a series of patches that simplifies the code of the
1138 bytecode interpreter.
1139
Werner Lemberg232bd942014-12-30 21:44:51 +010011402014-12-30 Werner Lemberg <wl@gnu.org>
1141
1142 * Version 2.5.5 released.
1143 =========================
1144
1145
1146 Tag sources with `VER-2-5-5'.
1147
1148 * docs/VERSION.DLL: Update documentation and bump version number to
1149 2.5.5.
1150
1151 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1152 builds/windows/vc2005/index.html,
1153 builds/windows/vc2008/freetype.vcproj,
1154 builds/windows/vc2008/index.html,
1155 builds/windows/vc2010/freetype.vcxproj,
1156 builds/windows/vc2010/index.html,
1157 builds/windows/visualc/freetype.dsp,
1158 builds/windows/visualc/freetype.vcproj,
1159 builds/windows/visualc/index.html,
1160 builds/windows/visualce/freetype.dsp,
1161 builds/windows/visualce/freetype.vcproj,
1162 builds/windows/visualce/index.html,
1163 builds/wince/vc2005-ce/freetype.vcproj,
1164 builds/wince/vc2005-ce/index.html,
1165 builds/wince/vc2008-ce/freetype.vcproj,
1166 builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
1167
1168 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
1169
1170 * builds/unix/configure.raw (version_info): Set to 17:4:11.
1171 * CMakeLists.txt (VERSION_PATCH): Set to 5.
1172 * docs/CHANGES: Updated.
1173
1174 * builds/toplevel.mk (dist): Fix typos.
1175
Alexei Podtelezhnikov70241552014-12-24 12:11:46 -050011762014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com>
1177
1178 [base] Formatting and nanooptimizations.
1179
1180 * src/base/ftcalc.c,
1181 * src/base/fttrigon.c: Revise sign restoration.
1182
Werner Lemberg06842c72014-12-13 07:42:51 +010011832014-12-13 Werner Lemberg <wl@gnu.org>
1184
1185 * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
1186
Werner Lembergb9438112014-12-11 13:33:14 +010011872014-12-11 Werner Lemberg <wl@gnu.org>
1188
Werner Lemberg82119502014-12-11 22:27:06 +01001189 * builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
1190
1191 Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
1192 (contrary to GNU tar), so force the POSIX-1.1988 format.
1193
1194 Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
1195
11962014-12-11 Werner Lemberg <wl@gnu.org>
1197
Werner Lemberg812ed342014-12-11 14:07:29 +01001198 * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
1199
12002014-12-11 Werner Lemberg <wl@gnu.org>
1201
Werner Lembergc9ca6ff2014-12-11 13:39:39 +01001202 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
1203
1204 Problem reported by Dennis Felsing <dennis@felsin9.de>.
1205
12062014-12-11 Werner Lemberg <wl@gnu.org>
1207
Werner Lembergb9438112014-12-11 13:33:14 +01001208 * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
1209
1210 Problem reported by Dennis Felsing <dennis@felsin9.de>.
1211
suzuki toshiya2b592822014-12-10 00:27:41 +090012122014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1213
suzuki toshiya9bd1e552014-12-09 14:51:52 +09001214 [gxvalid] Fix a naming convention conflicting with ftvalid.
1215
1216 See previous changeset for otvalid.
1217
1218 * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
1219 `valid' by `gxvalid'.
1220 * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
1221 gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
1222 gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
1223 gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
1224 gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
1225 it is typed as GXV_Validator.
1226
12272014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1228
suzuki toshiya51abdf62014-12-09 00:58:04 +09001229 [otvalid] Fix a naming convention conflicting with ftvalid.
1230
1231 Some prototypes in ftvalid.h use `valid' for the variables
1232 typed as FT_Validator. Their implementations in src/base/
1233 ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
1234
1235 Some macros in otvcommn.h assume the exist of the variable
1236 `valid' typed as OTV_Validator in the caller.
1237
1238 Mixing these two conventions cause invalid pointer conversion
1239 and unexpected SEGV in longjmp. To prevent it, all variables
1240 typed as OTV_Validator are renamed to `otvalid'.
1241
1242 * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
1243 * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
1244 otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
1245 if it is typed as OTV_Validator.
1246
12472014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1248
suzuki toshiya2b592822014-12-10 00:27:41 +09001249 [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
1250
1251 Original patch is designed by Werner Lemberg. Extra part
1252 for otvalid and gxvalid are added by suzuki toshiya, see
1253 discussion:
1254 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
1255 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
1256
1257 * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
1258 * src/gxvalid/gxvcommn.h: Ditto.
1259 * src/otvalid/otvcommn.h: Ditto.
1260
Werner Lemberg74af85c2014-12-08 16:01:50 +010012612014-12-08 Werner Lemberg <wl@gnu.org>
1262
1263 [pcf] Fix Savannah bug #43774.
1264
1265 Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
1266 functions. Since the PCF format doesn't have an official
1267 specification, we have to exactly follow these functions' behaviour.
1268
1269 The problem was unveiled with a patch from 2014-11-06, fixing issue
1270 #43547.
1271
1272 * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
1273 element. Instead, assign real size.
1274
Werner Lemberg66883b52014-12-07 09:17:06 +010012752014-12-07 Werner Lemberg <wl@gnu.org>
1276
Werner Lemberg553c9672014-12-07 19:29:52 +01001277 Work around a bug in Borland's C++ compiler.
1278
1279 See
1280
1281 http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
1282
1283 for Borland's bug tracker entry.
1284
1285 Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
1286 http://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
1287
1288 * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
1289 (gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
1290
12912014-12-07 Werner Lemberg <wl@gnu.org>
1292
Werner Lemberg9870d6d2014-12-07 09:40:47 +01001293 */*: Decorate hex constants with `U' and `L' where appropriate.
1294
12952014-12-07 Werner Lemberg <wl@gnu.org>
1296
Werner Lemberg66883b52014-12-07 09:17:06 +01001297 [truetype] Prevent memory leak for buggy fonts.
1298
1299 * src/truetype/ttobjs.c (tt_size_done): Unconditionally call
1300 `tt_size_done_bytecode'.
1301
Werner Lemberg94926682014-12-06 07:11:44 +010013022014-12-06 Werner Lemberg <wl@gnu.org>
1303
1304 * Version 2.5.4 released.
1305 =========================
1306
1307
1308 Tag sources with `VER-2-5-4'.
1309
1310 * docs/VERSION.DLL: Update documentation and bump version number to
1311 2.5.4.
1312
1313 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1314 builds/windows/vc2005/index.html,
1315 builds/windows/vc2008/freetype.vcproj,
1316 builds/windows/vc2008/index.html,
1317 builds/windows/vc2010/freetype.vcxproj,
1318 builds/windows/vc2010/index.html,
1319 builds/windows/visualc/freetype.dsp,
1320 builds/windows/visualc/freetype.vcproj,
1321 builds/windows/visualc/index.html,
1322 builds/windows/visualce/freetype.dsp,
1323 builds/windows/visualce/freetype.vcproj,
1324 builds/windows/visualce/index.html,
1325 builds/wince/vc2005-ce/freetype.vcproj,
1326 builds/wince/vc2005-ce/index.html,
1327 builds/wince/vc2008-ce/freetype.vcproj,
1328 builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/.
1329
1330 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
1331
1332 * builds/unix/configure.raw (version_info): Set to 17:3:11.
1333 * CMakeLists.txt (VERSION_PATCH): Set to 4.
1334 * docs/CHANGES: Updated.
1335
Werner Lemberg934ef382014-12-04 06:38:51 +010013362014-12-04 Werner Lemberg <wl@gnu.org>
1337
1338 docs/CHANGES: Updated, formatted.
1339
Dave Arnold2cdc4562014-12-04 06:10:16 +010013402014-12-04 Dave Arnold <darnold@adobe.com>
1341
Dave Arnoldf89396c2014-12-04 06:17:26 +01001342 [cff] Modify an FT_ASSERT.
1343
1344 * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
1345 bug #43661, the test font `...aspartam.otf' still triggers an
1346 FT_ASSERT. Since hintmap still works with count==0, ...
1347 (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
1348 suppress the assert.
1349
13502014-12-04 Dave Arnold <darnold@adobe.com>
1351
Dave Arnold2cdc4562014-12-04 06:10:16 +01001352 [cff] Fix Savannah bug #43661.
1353
1354 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
1355 cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
1356 hintmask is constructed.
1357
1358 * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
1359 avoid reading past end of hintmask.
1360
Werner Lemberg16188eb2014-12-03 10:18:34 +010013612014-12-03 Werner Lemberg <wl@gnu.org>
1362
Werner Lemberg8fa69a82014-12-03 20:07:14 +01001363 docs/CHANGES: Updated.
1364
13652014-12-03 Werner Lemberg <wl@gnu.org>
1366
Werner Lemberga632b5f2014-12-03 19:30:44 +01001367 [autofit] Better fix for conversion specifiers in debug messages.
1368
1369 Using `%ld' for pointer differences causes warnings on 32bit
1370 platforms. The correct type would be (the relatively new) `%td',
1371 however, this is missing on some important platforms.
1372
1373 This patch improves the change from 2014-11-28.
1374
1375 * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our
1376 pointer differences are always sufficiently small.
1377 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1378 af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
1379
13802014-12-03 Werner Lemberg <wl@gnu.org>
1381
Werner Lemberg16188eb2014-12-03 10:18:34 +01001382 FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
1383
1384 All public FreeType enumeration and flag values are uppercase...
1385
1386 * include/tttables.h (FT_Sfnt_Tag): Implement it. For backwards
1387 compatilibity, retain the old values as macros.
1388
1389 * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
1390 (get_sfnt_table): Updated.
1391
Werner Lemberg2af25ac2014-12-02 08:38:57 +010013922014-12-02 Werner Lemberg <wl@gnu.org>
1393
Werner Lembergde43ace2014-12-02 23:06:04 +01001394 * include/*: Improve structure of documentation.
1395
1396 . Add and update many `<Order>' tags.
1397 . Apply various documentation fixes.
1398 . Remove details to deprecated (or never implemented) data.
1399
14002014-12-02 Werner Lemberg <wl@gnu.org>
1401
Werner Lembergca1f5cc2014-12-02 22:49:25 +01001402 [docmaker] Always handle `<Order>' section elements.
1403
1404 Previously, those elements were handled only for sections present in
1405 a `<Sections>' chapter element.
1406
1407 * src/tools/docmaker/content.py (ContentProcessor::finish):
1408 Implement it.
1409
14102014-12-02 Werner Lemberg <wl@gnu.org>
1411
Werner Lembergef6a3522014-12-02 21:16:59 +01001412 [docmaker] Properly handle empty rows in Synopsis.
1413
1414 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
1415 `&nbsp;' for empty fields.
1416
14172014-12-02 Werner Lemberg <wl@gnu.org>
1418
Werner Lemberg0e96f052014-12-02 11:08:31 +01001419 [docmaker] Thinko.
1420
1421 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1422 Emit `/empty/' string for first element also.
1423
14242014-12-02 Werner Lemberg <wl@gnu.org>
1425
Werner Lemberg102d4a72014-12-02 10:27:40 +01001426 [docmaker] Honour empty lines in `<Order>' section element.
1427
1428 This greatly improves the readability of the `Synopsis' links.
1429
1430 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1431 Insert string `/empty/' between items.
1432
1433 * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
1434 robust against nonexistent keys.
1435
1436 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
1437 empty <td> elements for `/empty/'.
1438
14392014-12-02 Werner Lemberg <wl@gnu.org>
1440
Werner Lemberg2af25ac2014-12-02 08:38:57 +01001441 [docmaker] Ensure Python 3 compatibility.
1442
1443 * src/tools/docmaker/content.py (ContentProcessor::set_section,
1444 ContentProcessor::finish): Replace `has_key' function with `in'
1445 keyword.
1446
1447 * src/tools/docmaker/formatter.py (Formatter::__init__): Replace
1448 sorting function with a key generator.
1449 (Formatter::add_identifier): Replace `has_key' function with `in'
1450 keyword.
1451
1452 * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
1453 Replace `has_key' function with `in' keyword.
1454 (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
1455 integer division.
1456 s/<>/>/.
1457
1458 * src/tools/docmaker/utils.py: Import `itertools'.
1459 (index_sort): Replaced by...
1460 (index_key): ... this new key generator (doing exactly the same).
1461
Werner Lemberg8f795112014-11-29 06:49:15 +010014622014-11-29 Werner Lemberg <wl@gnu.org>
1463
Werner Lemberg80bfeb12014-12-01 10:07:52 +01001464 [docmaker] Don't output a block multiple times.
1465
1466 This bug was hidden by not processing all lines of `<Order>' blocks.
1467
1468 * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
1469 out field names.
1470
14712014-11-29 Werner Lemberg <wl@gnu.org>
1472
Werner Lemberg0dbad762014-12-01 08:44:48 +01001473 [docmaker] Use field values as HTML link targets where possible.
1474
1475 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
1476 Accept second, optional argument to specify a name.
1477 (HtmlFormatter::html_source_quote): Link to field ID if possible.
1478 (HtmlFormatter::print_html_field_list): Emit `id' attribute.
1479
14802014-11-29 Werner Lemberg <wl@gnu.org>
1481
Werner Lemberg785b1d02014-11-30 22:16:34 +01001482 [docmaker] Allow empty lines in `<Order>' blocks.
1483
1484 Before this patch, the suggested order of entries stopped at the
1485 first empty line.
1486
1487 Obviously, nobody noticed that this problem caused a much reduced
1488 set of links in the `Synopsis' sections; in particular, the
1489 `<Order>' blocks contain a lot of entries that wouldn't be listed
1490 otherwise...
1491
1492 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1493 New function to iterate over all items.
1494 (DocSection::process): Use it.
1495
14962014-11-29 Werner Lemberg <wl@gnu.org>
1497
Werner Lemberg16b3e622014-11-30 20:58:27 +01001498 * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
1499
1500 After the single asterisk there must be no other immediately following
1501 asterisk.
1502
15032014-11-29 Werner Lemberg <wl@gnu.org>
1504
Werner Lemberg434bc692014-11-29 23:12:55 +01001505 * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
Werner Lemberg51987ea2014-11-29 22:19:29 +01001506
Werner Lemberg434bc692014-11-29 23:12:55 +010015072014-11-29 Werner Lemberg <wl@gnu.org>
1508
1509 [docmaker] Improve HTML code for table of contents.
1510
1511 * src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
Werner Lemberg51987ea2014-11-29 22:19:29 +01001512 together with proper CSS.
1513
15142014-11-29 Werner Lemberg <wl@gnu.org>
1515
Werner Lembergaa834ce2014-11-29 20:08:29 +01001516 [docmaker] Provide higher-level markup and simplify HTML.
1517
1518 * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
1519 elements, use CSS descendants (of class `section') to format the
1520 data.
1521
1522 Also remove reduntant <p> and <br> elements, replacing them with
1523 proper CSS.
1524
1525 Globally reduce page width to 75%.
1526
1527 (block_header): Rename <div> class to `section'.
1528
15292014-11-29 Werner Lemberg <wl@gnu.org>
1530
Werner Lemberg3bb97022014-11-29 16:12:37 +01001531 [docmaker] Add `top' links after blocks.
1532
1533 * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
1534
15352014-11-29 Werner Lemberg <wl@gnu.org>
1536
Werner Lemberga31f9712014-11-29 07:18:44 +01001537 * src/tools/docmaker/tohtml.py: Improve CSS for fields.
1538
Werner Lemberg3bb97022014-11-29 16:12:37 +01001539 Make fields align horizontally relative to full line width.
Werner Lemberga31f9712014-11-29 07:18:44 +01001540
15412014-11-29 Werner Lemberg <wl@gnu.org>
1542
Werner Lemberg8f795112014-11-29 06:49:15 +01001543 * src/tools/docmaker/tohtml.py: Fix index and TOC templates.
1544
1545 This thinko was introduced 2014-11-27.
1546
Werner Lembergba1ba0c2014-11-28 22:04:14 +010015472014-11-28 Werner Lemberg <wl@gnu.org>
1548
1549 [docmaker] Format field lists with CSS.
1550
1551 This also simplifies the inserted HTML code.
1552
1553 * src/tools/docmaker/tohtml.py
1554 (HtmlFormatter::print_html_field_list): Do it.
1555
suzuki toshiya348fffa2014-11-28 16:05:59 +090015562014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1557
1558 Fix compiler warning to the comparison between signed and
1559 unsigned variable.
1560
1561 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
1562 between `ypos + ysize' and FT_INT_{MAX,MIN}.
1563
Werner Lembergba1ba0c2014-11-28 22:04:14 +010015642014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg984e0712014-11-28 05:33:58 +01001565
Werner Lembergba1ba0c2014-11-28 22:04:14 +01001566 [docmaker] Replace empty `<td>' with CSS.
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001567
1568 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
1569 it.
1570
Werner Lembergba1ba0c2014-11-28 22:04:14 +010015712014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001572
Werner Lemberg984e0712014-11-28 05:33:58 +01001573 [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
1574
1575 * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
1576 (source_*): Use `<div>'.
1577 (HtmlFormatter::block_enter): s/<h4>/<h3>/.
1578
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +090015792014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1580
1581 Fix compiler warning to conversion specifiers in debug messages.
1582
1583 * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
Werner Lemberga632b5f2014-12-03 19:30:44 +01001584 modifier to dump long integers.
1585 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +09001586
Werner Lemberg26d699e2014-11-27 19:22:52 +010015872014-11-27 Werner Lemberg <wl@gnu.org>
1588
Werner Lemberg984e0712014-11-28 05:33:58 +01001589 * src/tools/docmaker/tohtml.py: Use more CSS for index.
Werner Lemberg7ea36342014-11-27 19:38:31 +01001590
15912014-11-27 Werner Lemberg <wl@gnu.org>
1592
Werner Lembergedcf8172014-11-27 19:28:48 +01001593 [docmaker] Replace `name' attribute of `<a>' with `id'.
1594
1595 * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
1596
15972014-11-27 Werner Lemberg <wl@gnu.org>
1598
Werner Lemberg26d699e2014-11-27 19:22:52 +01001599 * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
1600
1601 For `Index' and `TOC' links, we now simply use the `text-align' CSS
1602 property of `<td>' to enforce flush-left and flush-right,
1603 eliminating the hack with an empty, full-width `<td>' element
1604 inbetween.
1605
1606 The change also enforces the same (smaller) size for all index and
1607 TOC links.
1608
suzuki toshiya2676e072014-11-28 00:58:25 +090016092014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1610
suzuki toshiya1b12f5d2014-11-28 01:22:26 +09001611 * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
1612 cf2font.c could not find it under `make multi' build.
1613
16142014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1615
suzuki toshiya2676e072014-11-28 00:58:25 +09001616 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
1617 unrequired negative value check for `width' and `height'.
1618
Werner Lemberg8585cf52014-11-27 10:49:05 +010016192014-11-27 Werner Lemberg <wl@gnu.org>
1620
Werner Lembergdd3fee02014-11-27 13:20:52 +01001621 * src/tools/docmaker/tohtml.py: More HTML table refactoring.
1622
1623 Replace some `<table>' tags with `<div>' to simplify structure.
1624
1625 Move `bgcolor' attribute to CSS.
1626
1627 Replace most `width' attributes with CSS. The remaining instances
1628 (providing a similar effect as LaTeX's `\hfill' command) are removed
1629 in a later patch.
1630
16312014-11-27 Werner Lemberg <wl@gnu.org>
1632
Werner Lemberga5ad26a2014-11-27 10:52:24 +01001633 * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
1634
16352014-11-27 Werner Lemberg <wl@gnu.org>
1636
Werner Lembergba67c612014-11-27 10:51:49 +01001637 * src/tools/docmaker/tohtml.py: Center <table> with CSS.
1638
16392014-11-27 Werner Lemberg <wl@gnu.org>
1640
Werner Lemberg5594fa52014-11-27 10:50:50 +01001641 * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
1642
16432014-11-27 Werner Lemberg <wl@gnu.org>
1644
Werner Lemberg8585cf52014-11-27 10:49:05 +01001645 * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
1646
1647 This starts a series of commits into the direction of generating
1648 valid HTML 5 code, especially using much more CSS.
1649
suzuki toshiya1b057042014-11-27 17:53:20 +090016502014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1651
1652 Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
1653 suggested by Alexei.
1654
1655 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
1656 negative values in `xpos' and `ypos + ysize'.
1657 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
1658 too negative values in `x_left' and `y_top'. Either negative
1659 values in `width' and `height' are checked.
1660
Werner Lemberg3d167cb2014-11-27 05:19:41 +010016612014-11-27 Werner Lemberg <wl@gnu.org>
1662
Werner Lembergc52882a2014-11-27 08:01:25 +01001663 [docmaker] Produce better HTML code.
1664
1665 * src/tools/docmaker/tohtml.py: Always use double quotes for
1666 attribute values.
1667 (source_footer): Close `td' and `tr' groups.
1668
16692014-11-27 Werner Lemberg <wl@gnu.org>
1670
Werner Lembergdbb93152014-11-27 07:20:48 +01001671 Use better way to disable creation of .pyc files for `make refdoc'.
1672
1673 Python 2.6 was released in 2008...
1674
1675 * builds/freetype.mk (refdoc): Use python's `-B' option.
1676
1677 * builds/detect.mk (std_setup, dos_setup): Mention required python
1678 version for `refdoc' target.
1679
16802014-11-27 Werner Lemberg <wl@gnu.org>
1681
Werner Lemberge8a5c332014-11-27 06:48:37 +01001682 * src/tools/docmaker/sources.py (re_bold, re_italic): Use
1683 non-grouping parentheses.
1684 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
1685 Updated.
1686
16872014-11-27 Werner Lemberg <wl@gnu.org>
1688
Werner Lemberg3d167cb2014-11-27 05:19:41 +01001689 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
1690
1691 Introdruced in previous change. Reported by Alexei.
1692
Werner Lemberga593a042014-11-26 18:42:48 +010016932014-11-26 Werner Lemberg <wl@gnu.org>
1694
Werner Lembergf34f1922014-11-26 21:59:21 +01001695 * src/*: Add checks for parameters of API functions where missing.
1696
1697 `API functions' are functions tagged with `FT_EXPORT_DEF'.
1698
1699 Besides trivial fixes, the following changes are included, too.
1700
1701 * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
1702 error code if no service is available.
1703
1704 * src/base/ftinit.c (FT_Done_FreeType): Change return value for
1705 invalid `library' parameter to `Invalid_Library_Handle'.
1706
1707 * src/base/ftobjs.c (FT_New_Size): Change return value for invalid
1708 `asize' parameter to `Invalid_Argument'.
1709
1710 * src/base/ftoutln.c (FT_Outline_Copy): Change return value for
1711 invalid `source' and `target' parameters to `Invalid_Outline'.
1712 (FT_Outline_Done_Internal): Change return value for invalid
1713 `outline' parameter to `Invalid_Outline'.
1714
17152014-11-26 Werner Lemberg <wl@gnu.org>
1716
Werner Lemberga593a042014-11-26 18:42:48 +01001717 * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
1718
suzuki toshiya5aff8532014-11-26 14:36:12 +090017192014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1720
suzuki toshiyacd4a5a22014-11-27 00:20:48 +09001721 * src/base/ftobj.c (Mac_Read_POST_Resource): Additional
1722 overflow check in the summation of POST fragment lengths,
1723 suggested by Mateusz Jurczyk <mjurczyk@google.com>.
1724
17252014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1726
suzuki toshiya1720e812014-11-26 16:39:00 +09001727 * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
1728 and fold too long tracing messages.
1729
17302014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1731
suzuki toshiya18a8f0d2014-11-26 16:11:38 +09001732 Fix Savannah bug #43540.
1733
1734 * src/base/ftmac.c (parse_fond): Prevent a buffer overrun
1735 caused by a font including too many (> 63) strings to store
1736 names[] table.
1737
17382014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1739
suzuki toshiya45331672014-11-26 16:02:17 +09001740 * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
1741 variables to read the lengths in POST fragments. Suggested by
1742 Mateusz Jurczyk <mjurczyk@google.com>.
1743
17442014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1745
suzuki toshiya35252ae2014-11-26 15:52:23 +09001746 Fix Savannah bug #43539.
1747
1748 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1749 by a broken POST table in resource-fork.
1750
17512014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1752
suzuki toshiya240c94a2014-11-26 15:43:29 +09001753 Fix Savannah bug #43538.
1754
1755 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1756 by a broken POST table in resource-fork.
1757
17582014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1759
suzuki toshiya5aff8532014-11-26 14:36:12 +09001760 * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
1761 by a broken POST table in resource-fork. Return after freeing
1762 the buffered POST table when it is found to be broken.
1763
Werner Lemberg04edbbd2014-11-25 10:21:13 +010017642014-11-25 Werner Lemberg <wl@gnu.org>
1765
Werner Lemberg02b8e7e2014-11-25 11:31:51 +01001766 */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
1767
17682014-11-25 Werner Lemberg <wl@gnu.org>
1769
Werner Lemberg0d4aa232014-11-25 11:26:14 +01001770 */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
1771
17722014-11-25 Werner Lemberg <wl@gnu.org>
1773
Werner Lembergf4f9e682014-11-25 11:11:55 +01001774 */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
1775
17762014-11-25 Werner Lemberg <wl@gnu.org>
1777
Werner Lemberg04c2aa12014-11-25 10:22:12 +01001778 */*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
1779
17802014-11-25 Werner Lemberg <wl@gnu.org>
1781
Werner Lemberg04edbbd2014-11-25 10:21:13 +01001782 */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
1783
Werner Lembergeca0f062014-11-24 10:22:08 +010017842014-11-24 Werner Lemberg <wl@gnu.org>
1785
Werner Lemberg3e867112014-11-25 09:01:07 +01001786 [Savannah bug #43682] Adjust some renderer callbacks.
1787
1788 * src/raster/ftraster.c (ft_black_set_mode): Change return type to
1789 `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
1790
1791 * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
1792 for orthogonality.
1793 (ft_grays_raster): Use it.
1794
Werner Lemberg04edbbd2014-11-25 10:21:13 +010017952014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg3e867112014-11-25 09:01:07 +01001796
Werner Lemberg6689a002014-11-25 08:53:09 +01001797 [Savannah bug #43682] Properly handle missing return errors.
1798
1799 The functions in this patch *do* return non-trivial errors that must
1800 be taken care of.
1801
1802 * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
1803 (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
1804 src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
1805 src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
1806 (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
1807 (load_truetype_glyph <subglyph loop>, tt_loader_init,
1808 TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
1809 src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
1810
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018112014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg6689a002014-11-25 08:53:09 +01001812
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001813 [Savannah bug #43682] Add/remove `void' casts to some functions.
1814
1815 We use a cast to indicate that we intentionally ignore a function's
1816 return value. However, this doesn't apply to API functions where
1817 errors can only happen for trivially invalid input.
1818
1819 * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
1820 src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
1821 (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
1822 src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
1823 (t42_parse_encoding): Do it.
1824
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018252014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001826
Werner Lembergef439fd2014-11-25 08:14:15 +01001827 [Savannah bug #43682] Change some signatures to `void' return type.
1828
1829 * include/internal/pshints.h (PSH_Globals_SetScaleFunc),
1830 include/internal/sfnt.h (TT_Get_Metrics_Func),
1831 src/pshinter/pshglob.c (psh_globals_set_scale),
1832 src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
1833 (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
1834 TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
1835 TT_Save_Context): Do it.
1836
1837 * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
1838 src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
1839 (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
1840 (tt_size_run_fpgm, tt_size_run_prep): Updated.
1841
18422014-11-24 Werner Lemberg <wl@gnu.org>
1843
Werner Lemberg6889f7b2014-11-24 17:16:08 +01001844 Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
1845
1846 This is no longer used.
1847
1848 * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
1849 src/sfnt/ttcmap.c: Do it.
1850
18512014-11-24 Werner Lemberg <wl@gnu.org>
1852
Werner Lembergf0292bb2014-11-24 10:51:21 +01001853 [sfnt] Fix Savannah bug #43680.
1854
1855 This adds an additional constraint to make the fix from 2013-01-25
1856 really work.
1857
1858 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
1859 Check `p' before `num_glyphs'.
1860
18612014-11-24 Werner Lemberg <wl@gnu.org>
1862
Werner Lembergeca0f062014-11-24 10:22:08 +01001863 [truetype] Fix Savannah bug #43679.
1864
1865 * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
1866 `record_size'.
1867
Jarkko Pöyry96341dc2014-11-24 09:53:07 +010018682014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com>
1869
1870 [cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
1871
Werner Lemberged6a9df2014-12-06 23:28:58 +01001872 Don't cast cmap init function pointers to an incompatible type.
Jarkko Pöyry96341dc2014-11-24 09:53:07 +01001873
1874 Without this patch, the number of parameters between declaration and
1875 the real signature differs. Calling such a function results in
1876 undefined behavior.
1877
1878 ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
1879 6.5.2.2 Function calls
1880 9 If the function is defined with a type that is not
1881 compatible with the type (of the expression) pointed to by
1882 the expression that denotes the called function, the
1883 behavior is undefined.
1884
1885 On certain platforms (c -> js with emscripten) this causes
1886 termination of execution or invalid calls because in the emscripten
1887 implementation, function pointers of different types are stored in
1888 different pointer arrays. Incorrect pointer type here results in
1889 indexing of an incorrect array.
1890
1891 * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
1892 src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
1893 t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
1894 t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
1895 signature.
1896
Werner Lemberga7a42072014-11-24 06:44:45 +010018972014-11-24 Werner Lemberg <wl@gnu.org>
1898
Werner Lembergf70d9342014-11-24 09:31:32 +01001899 [sfnt] Fix Savannah bug #43672.
1900
1901 * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
1902 minimum table length test.
1903
19042014-11-24 Werner Lemberg <wl@gnu.org>
1905
Werner Lemberg73be9f92014-11-24 07:30:05 +01001906 [type1, type42] Another fix for Savannah bug #43655.
1907
1908 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
1909 (t42_parse_charstrings): Add another boundary testing.
1910
19112014-11-24 Werner Lemberg <wl@gnu.org>
1912
Werner Lemberga7a42072014-11-24 06:44:45 +01001913 [docmaker] Formatting, copyright, improved documentation.
1914
1915 * src/tools/docmaker/*: No code changes besides trivial
1916 modifications.
1917
Werner Lemberg9bd20b72014-11-22 06:24:45 +010019182014-11-22 Werner Lemberg <wl@gnu.org>
1919
Werner Lembergaf834612014-11-22 13:29:10 +01001920 [bdf] Fix Savannah bug #43660.
1921
1922 * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
1923 `_BDF_GLYPH_BITS'.
1924
19252014-11-22 Werner Lemberg <wl@gnu.org>
1926
Werner Lemberg42fcd662014-11-22 12:44:33 +01001927 [type42] Allow only embedded TrueType fonts.
1928
1929 This is a follow-up to Savannah bug #43659.
1930
1931 * src/type42/t42objs.c (T42_Face_Init): Exclusively use the
1932 `truetype' font driver for loading the font contained in the `sfnts'
1933 array.
1934
19352014-11-22 Werner Lemberg <wl@gnu.org>
1936
Werner Lemberg37881872014-11-22 10:46:47 +01001937 [type42] Fix Savannah bug #43659.
1938
1939 * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
1940
1941 * src/type42/t42parse.c (t42_parse_sfnts): Always set
1942 `face->ttf_size' directly. This ensures a correct stream size in
1943 the call to `FT_Open_Face', which follows after parsing, even for
1944 buggy input data.
1945 Fix error messages.
1946
19472014-11-22 Werner Lemberg <wl@gnu.org>
1948
Werner Lemberg5f201ab2014-11-22 09:16:39 +01001949 [cff] Fix Savannah bug #43658.
1950
1951 * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
1952 return values of point allocation routines.
1953
19542014-11-22 Werner Lemberg <wl@gnu.org>
1955
Werner Lemberg9bd20b72014-11-22 06:24:45 +01001956 [sfnt] Fix Savannah bug #43656.
1957
1958 * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
1959 tests.
1960
Werner Lemberg6de76172014-11-21 06:05:49 +010019612014-11-21 Werner Lemberg <wl@gnu.org>
1962
Werner Lembergdd897102014-11-21 22:19:28 +01001963 [type1, type42] Fix Savannah bug #43655.
1964
1965 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
1966 (t42_parse_charstrings): Fix boundary testing.
1967
19682014-11-21 Werner Lemberg <wl@gnu.org>
1969
Werner Lembergb1fc00d2014-11-21 12:06:40 +01001970 * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
1971
19722014-11-21 Werner Lemberg <wl@gnu.org>
1973
Werner Lemberg9154dab2014-11-21 08:03:51 +01001974 [ftlcdfil] Obey flow direction.
1975
1976 * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
1977 Handle `up' flow.
1978
19792014-11-21 Werner Lemberg <wl@gnu.org>
1980
Werner Lemberg644d6fa2014-11-21 07:28:50 +01001981 * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
1982
1983 This commit completes argument checks and adds support for different
1984 flow directions.
1985
19862014-11-21 Werner Lemberg <wl@gnu.org>
1987
Werner Lemberg6de76172014-11-21 06:05:49 +01001988 * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
1989
1990 This commit adds argument checks and support for different flow
1991 directions.
1992
Werner Lemberg1e6e1b82014-11-20 21:07:56 +010019932014-11-20 Werner Lemberg <wl@gnu.org>
1994
1995 * src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
1996
Werner Lembergd6061212014-11-19 21:13:23 +010019972014-11-19 Werner Lemberg <wl@gnu.org>
1998
Werner Lembergb3500af2014-11-19 21:28:21 +01001999 Change some fields in `FT_Bitmap' to unsigned type.
2000
2001 This doesn't break ABI.
2002
2003 * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
2004 `pixel_mode', and `palette_mode' unsigned types.
2005
2006 * src/base/ftbitmap.c: Updated.
2007 (FT_Bitmap_Copy): Fix casts.
2008
2009 * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
2010 Updated.
2011
20122014-11-19 Werner Lemberg <wl@gnu.org>
2013
Werner Lembergdf485772014-11-19 21:21:23 +01002014 Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
2015
2016 * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
2017 for the pitch while copying data.
2018 Correctly set pitch sign in target bitmap.
2019
20202014-11-19 Werner Lemberg <wl@gnu.org>
2021
Werner Lembergd6061212014-11-19 21:13:23 +01002022 Minor code improvement in `FT_Bitmap_Embolden'.
2023
2024 * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
2025 Fix thinko.
2026
Alexei Podtelezhnikovf841ad32014-11-19 21:19:06 -050020272014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2028
2029 * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
2030
Werner Lemberga67c43e2014-11-19 06:46:23 +010020312014-11-19 Behdad Esfahbod <behdad@behdad.org>
2032
2033 Avoid compiler warnings on x86-64 for `FT_MulFix'.
2034
2035 `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
2036 but several inline implementations of it in `ftcalc.h' take
2037 `FT_Int32' arguments. This is causing compiler warnings on x86-64:
2038 If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
2039 inline implementation of this function, integer values are truncated
2040 from 64bit to 32bit.
2041
2042 * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
2043 casts.
2044
Werner Lemberg54abd222014-11-15 09:05:22 +010020452014-11-15 Werner Lemberg <wl@gnu.org>
2046
2047 [sfnt] Fix Savannah bug #43597.
2048
2049 * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
2050 bitmaps.
2051
Werner Lemberg602040b2014-11-12 20:51:20 +010020522014-11-12 Werner Lemberg <wl@gnu.org>
2053
Werner Lemberg257c2702014-11-12 21:42:13 +01002054 [sfnt] Fix Savannah bug #43591.
2055
2056 * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
2057 and multiplication overflow.
2058
20592014-11-12 Werner Lemberg <wl@gnu.org>
2060
Werner Lemberg677ddf42014-11-12 21:26:44 +01002061 [sfnt] Fix Savannah bug #43590.
2062
2063 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
2064 Protect against addition overflow.
2065
20662014-11-12 Werner Lemberg <wl@gnu.org>
2067
Werner Lembergf46add12014-11-12 21:06:08 +01002068 [sfnt] Fix Savannah bug #43589.
2069
2070 * src/sfnt/sfobjs.c (woff_open_font): Protect against addition
2071 overflow.
2072
20732014-11-12 Werner Lemberg <wl@gnu.org>
2074
Werner Lemberg602040b2014-11-12 20:51:20 +01002075 [sfnt] Fix Savannah bug #43588.
2076
2077 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
2078 tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
2079 against overflow in additions and multiplications.
2080
Alexei Podtelezhnikov2e73a1b2014-11-09 23:22:43 -050020812014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
2082
2083 [base] CORDIC improvements.
2084
2085 The scaling between the hypotenuse and its CORDIC approximation is
2086 based on regression analysis. The smaller padding for `theta' is
2087 justifed by its maximum error of less than 6.
2088
2089 * src/base/fttrigon.c (ft_trig_downscale): Borrow code from
2090 ./ftcalc.c (ft_multo64), change linear intercept.
2091 (ft_trig_pseudo_polarize): Decrease `theta' padding.
2092
Werner Lemberg0e73d212014-11-09 01:27:38 +010020932014-11-09 Werner Lemberg <wl@gnu.org>
2094
2095 * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
2096
2097 One more place to check whether `radius' is zero.
2098
2099 Problem reported by Marco Wertz <marco.wertz@gmx.de>.
2100
Werner Lemberg2c4832d2014-11-07 07:42:33 +010021012014-11-07 Werner Lemberg <wl@gnu.org>
2102
Werner Lemberg602040b2014-11-12 20:51:20 +01002103 [bdf] Fix Savannah bug #43535.
Werner Lemberg2c4832d2014-11-07 07:42:33 +01002104
2105 * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
2106 character more than `strncmp'.
2107 s/ft_strncmp/_bdf_strncmp/ everywhere.
2108
Werner Lembergf49a1002014-11-06 13:30:28 +010021092014-11-06 Werner Lemberg <wl@gnu.org>
2110
Werner Lemberg602040b2014-11-12 20:51:20 +01002111 [pcf] Fix Savannah bug #43548.
Werner Lembergef1eba72014-11-06 23:25:05 +01002112
Werner Lemberg2c4832d2014-11-07 07:42:33 +01002113 * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
2114 and column values.
Werner Lembergef1eba72014-11-06 23:25:05 +01002115
21162014-11-06 Werner Lemberg <wl@gnu.org>
2117
Werner Lemberg602040b2014-11-12 20:51:20 +01002118 [pcf] Fix Savannah bug #43547.
Werner Lemberg0e2f5d52014-11-06 22:32:46 +01002119
2120 * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
2121 values.
2122
21232014-11-06 Werner Lemberg <wl@gnu.org>
2124
Werner Lembergf49a1002014-11-06 13:30:28 +01002125 * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
2126
Infinalityfacfc792014-11-03 07:24:59 +010021272014-11-03 Infinality <infinality@infinality.net>
2128
2129 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
2130
2131 The previous commit deteriorates rendering of DejaVu and similar
2132 fonts; this gets compensated with this rule.
2133
Werner Lemberg706f7522014-11-03 07:20:57 +010021342014-11-03 Werner Lemberg <wl@gnu.org>
2135
2136 * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
2137
2138 Before this patch, it was impossible to ever call DELTAP[123] in
2139 subpixel hinting mode as described in the ClearType whitepaper; it
2140 only worked if in `compatibility mode'. However, compatibility mode
2141 essentially disables SHPIX, completely ruining hinting of
2142 ttfautohint output, for example.
2143
2144 We now follow the whitepaper more closely so that DELTAP[123]
2145 instructions for touched points in the non-subpixel direction are
2146 executed.
2147
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -040021482014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
2149
Alexei Podtelezhnikov525d4872014-10-31 22:12:37 -04002150 [smooth] Improve code readability.
2151
2152 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2153
21542014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
2155
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -04002156 [smooth] Reduce outline translations during rendering.
2157
2158 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
2159 virtually by modifying cbox, actually translate outline if cumulative
2160 shift is not zero.
2161
Alexei Podtelezhnikovc7fd9352014-10-30 22:43:01 -040021622014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com>
2163
2164 [smooth] Fix Savannah bug #35604 (cont'd).
2165
2166 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
2167 casts that became unnecessary after the variable type upgrades.
2168
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -040021692014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
2170
Alexei Podtelezhnikov465ab992014-10-29 23:45:23 -04002171 [smooth] Improve code readability.
2172
2173 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2174
21752014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
2176
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -04002177 Unify hypotenuse approximations.
2178
2179 * include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
2180 * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
2181 * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
2182
Werner Lembergfe151522014-10-25 05:56:59 +020021832014-10-25 Werner Lemberg <wl@gnu.org>
2184
2185 [cff] Test valid darkening parameter macros in `ftoption.h'.
2186
2187 We no longer need an otherwise unused typedef that can cause a gcc
2188 warning.
2189 Problem reported by Alexei.
2190
2191 * src/cff/cffobjs.c (cff_driver_init): Use
2192 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
2193 (SET_DARKENING_PARAMETERS): Removed.
2194 Compile time tests are now ...
2195
2196 * devel/ftoption.h, include/config/ftoption.h: ... here.
2197
Alexei Podtelezhnikovaba0f492014-10-24 23:50:57 -040021982014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com>
2199
2200 Improve flat corner definition.
2201
2202 * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
2203 distance with the alpha max plus beta min algorithm.
2204 * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
2205 metric.
2206
David Weißdd8de1a2014-10-23 20:01:48 +020022072014-10-23 David Weiß <David.Weiss@ptvgroup.com>
2208
2209 [build] Improve property file for vc2010.
2210
2211 User-defined properties should be empty by default to prevent linker
2212 failures.
2213
2214 * builds/windows/vc2010/freetype.user.props,
2215 builds/windows/vc2010/freetype.vcxproj:
2216 s/OptionsDirectory/UserOptionDirectory/.
2217 Comment out all user options.
2218
Werner Lembergdd570e92014-10-23 19:57:37 +020022192014-10-23 Werner Lemberg <wl@gnu.org>
2220
2221 [cff] Work around bug in preprocessor of MSVC 2010.
2222
2223 We have been hit by
2224
2225 https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
2226
2227 * devel/ftoption.h, include/config/ftoption.h: Replace
2228 `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
2229 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
2230
2231 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no
2232 longer need double expansion.
2233 (SET_DARKENING_PARAMETERS_0): Renamed to ...
2234 (SET_DARKENING_PARAMETERS): ... this.
2235 Update call.
2236
Werner Lembergcc7bb802014-10-20 08:35:50 +020022372014-10-20 Werner Lemberg <wl@gnu.org>
2238
2239 [sbit] Minor fixes.
2240
2241 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
2242 Accept overlay format also, but emit warning message in that case.
2243 (tt_sbit_decoder_load_metrics): Add missing newline to error
2244 message.
2245 (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
2246 7.1) to the list of unsupported formats.
2247
Alexei Podtelezhnikov118e6512014-10-19 23:31:08 -040022482014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2249
2250 [truetype] Clean up bytecode rounding.
2251
2252 Zero distance does not have to be treated specially if you follow
2253 specifications and check the sign as the very last step of rounding.
2254
2255 * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
2256 Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
2257 macros when available, do not check for non-zero distance.
2258 (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
2259 if sign changed.
2260
Alexei Podtelezhnikovd4aabda2014-10-18 10:10:04 -040022612014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
2262
2263 [truetype] Unwrap engine compensation settings.
2264
2265 * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
2266
David Weißfede19e2014-10-18 14:59:20 +020022672014-10-18 David Weiß <David.Weiss@ptvgroup.com>
2268
2269 [build] Add property file to vc2010 project.
2270
2271 This simplifies custom build configurations, especially for
2272 automated build environments.
2273
2274 * builds/windows/vc2010/freetype.user.props: New configuration file.
2275
2276 * builds/windows/vc2010/freetype.vcxproj: Include
2277 `freetype.user.props' and use its data fields.
2278
2279 * builds/windows/vc2010/index.html: Updated.
2280
Werner Lembergc9c33f22014-10-18 11:01:14 +020022812014-10-18 Werner Lemberg <wl@gnu.org>
2282
2283 [autofit] Add blue-zone support for Telugu.
2284
2285 This essentially moves the Telugu script from the `Indic' hinter to
2286 the `Latin' hinter.
2287
2288 Note that this is a first shot and quite certainly needs
2289 refinements.
2290
2291 * src/autofit/afblue.dat: Add blue zone data for Telugu.
2292
2293 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2294
2295 * src/autofit/afscript.h: Add Telugu standard characters and move
2296 data out of AF_CONFIG_OPTION_INDIC block.
2297
2298 * src/autofit/afranges.c: Move Telugu data out of
2299 AF_CONFIG_OPTION_INDIC block.
2300
2301 * src/autofit/afstyles.h: Update Telugu data; in particular, use
2302 AF_WRITING_SYSTEM_LATIN.
2303
Werner Lemberg54306f52014-10-18 10:42:28 +020023042014-10-18 David Wimsey <david@wimsey.us>
2305
2306 [cmake] Add iOS build support.
Werner Lemberg1050aa92014-10-18 10:45:09 +02002307 From Savannah patch #8497.
Werner Lemberg54306f52014-10-18 10:42:28 +02002308
2309 * builds/cmake/iOS.cmake: New file. Universal binaries are built
2310 with both 32 and 64 bit arm architectures.
2311
2312 * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
2313 toolchain. Possible values are `OS' to build on iOS, or
2314 `SIMULATOR' to build on APPLE.
2315
Werner Lemberg1a1750f2014-10-16 22:54:01 +020023162014-10-16 Behdad Esfahbod <behdad@behdad.org>
2317 Werner Lemberg <wl@gnu.org>
2318
2319 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
2320
2321 * devel/ftoption.h, include/config/ftoption.h
2322 (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
2323
2324 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
2325 SET_DARKENING_PARAMETERS_0): New macros.
2326 (cff_driver_init): Use new macros.
2327
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -040023282014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
2329
2330 [truetype] Limit delta shift range.
2331
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002332 The valid range for delta shift is zero through six. Negative values
2333 are invalid according to
2334
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04002335 https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
2336
2337 * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002338 * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
2339 is out of range.
2340 (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04002341
Werner Lemberg03987bf2014-10-16 07:19:46 +020023422014-10-16 Werner Lemberg <wl@gnu.org>
2343
2344 A better fix for Savannah bug #43392.
2345 Suggested by Doug Felt <dougfelt@gmail.com>.
2346
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002347 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
Werner Lemberg03987bf2014-10-16 07:19:46 +02002348 `vertAdvance' to zero...
2349
2350 * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
2351 value for `vertAdvance' based on `linearVertAdvance' in case
2352 `vertAdvance' is zero. Note that the previous computed ad-hoc value
2353 for `linearVertAdvance' was apparently not tested in a real-life
2354 situation.
2355
David Weiß3889cb22014-10-14 11:35:16 +020023562014-10-14 David Weiß <David.Weiss@ptvgroup.com>
2357
2358 [build] Better optimization settings for vc2010 solution file.
2359
2360 * builds/windows/vc2010/freetype.sln,
2361 builds/windows/vc2010/freetype.vcxproj: Updated.
2362
Werner Lemberg8f178092014-10-14 08:28:09 +020023632014-10-14 Werner Lemberg <wl@gnu.org>
2364
2365 [autofit] Adjust Devenagari character range.
2366
2367 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
2368 are common to all other Indic scripts.
2369
Werner Lemberg1ca5fa12014-10-12 08:31:32 +020023702014-10-12 Werner Lemberg <wl@gnu.org>
2371
2372 [sfnt] Fix Savannah bug #43392.
2373
2374 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
2375 vertical metrics uninitialized.
2376
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -040023772014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2378
2379 [base] Small bbox correction.
2380
2381 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002382 instead of initial point that could be `off' in conic outlines.
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -04002383
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -040023842014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2385
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04002386 [base] Fix Savannah bug #43356.
2387
2388 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002389 of implicit `to'.
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04002390 (BBox_Line_To): New emitter that does not update bbox.
2391
23922014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2393
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -04002394 [base] Introduce and use new macro `FT_UPDATE_BBOX'
2395
2396 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
2397 (FT_Outline_Get_BBox): Use it here.
2398
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -040023992014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
2400
2401 [base] Significant optimization of `ft_div64by32'
2402
2403 We shift as many bits as we can into the high register, perform
2404 32-bit division with modulo there, then work through the remaining
2405 bits with long division. This optimization is especially noticeable
2406 for smaller dividends that barely use the high register.
2407
2408 * src/base/ftcalc.c (ft_div64by32): Updated.
2409
Dave Arnold537c55d2014-10-02 06:32:32 +020024102014-10-02 Dave Arnold <darnold@adobe.com>
2411
2412 [cff] Fix Savannah bug #43271.
2413
2414 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
2415 detection to use logarithms and clamp `scaledStem'.
2416
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -040024172014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
2418
Alexei Podtelezhnikov74d0aad2014-10-01 23:27:15 -04002419 * src/base/ftcalc.c: Remove miscellaneous type casts.
2420
24212014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
2422
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -04002423 [base] Use more common `FT_MSB' implementation with masks.
2424
2425 * src/base/ftcalc.c (FT_MSB): Updated.
2426
Alexei Podtelezhnikov955aff12014-09-30 23:09:39 -040024272014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
2428
2429 [base] Clean up.
2430
2431 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
2432 code.
2433
Alexei Podtelezhnikov7f491112014-09-25 22:54:38 -040024342014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
2435
2436 [base] Avoid unnecessary long division.
2437
2438 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
2439 lack thereof are predicted accurately.
2440
2441 * src/base/ftcalc.c (ft_div64by32): Improve readability.
2442 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
2443 when multiplication stayed within 32 bits.
2444
Werner Lemberg5b68e4f2014-09-24 19:06:13 +020024452014-09-24 Werner Lemberg <wl@gnu.org>
2446
2447 [autofit] Minor clean-ups.
2448
2449 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
2450
2451 * src/autofit/afhints.c (af_glyph_hints_dump_points,
2452 af_glyph_hints_align_strong_points): Updated.
2453
2454 * src/autofit/aflatin.c (af_latin_hints_link_segments,
2455 af_latin_hints_compute_segments), src/autofit/afcjk.c
2456 (af_cjk_hints_link_segments), src/autofit/aflatin2.c
2457 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
2458 There are no longer fake segments since more than 10 years...
2459
Werner Lemberg387a9fe2014-09-22 06:42:24 +020024602014-09-22 Werner Lemberg <wl@gnu.org>
2461
2462 [autofit] Minor code streamlining.
2463
2464 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
2465 initialization.
2466
Alexei Podtelezhnikov5c894842014-09-19 22:03:15 -040024672014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2468
2469 * src/base/ftcalc.c: Harmonize code.
2470
24712014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002472
Alexei Podtelezhnikovef070d42014-09-15 22:06:19 -04002473 [base] Tighten the overflow check in `FT_MulDiv'.
2474
2475 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
2476
24772014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2478
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002479 Fix Savannah bug #43153.
2480
2481 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -04002482 overflow in `divider'.
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002483
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -040024842014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2485
Alexei Podtelezhnikov336735d2014-09-03 22:55:26 -04002486 [base] Tighten the overflow check in `FT_DivFix'.
2487
2488 This fixes a 13-year old bug. The original overflow check should have
2489 been updated when rounding was introduced into this function
2490 (c2cd00443b).
2491
2492 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
2493 * include/freetype.h (FT_DivFix): Updated documentation.
2494
24952014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2496
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -04002497 [base] Tighten the overflow check in `FT_MulFix'.
2498
2499 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
2500
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -040025012014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
2502
2503 [truetype] Shortcut ppem calculations for square pixels.
2504
2505 * src/truetype/ttinterp.h (TT_ExecContextRec): New field
2506 `cur_ppem_func' with a function pointer.
2507 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
2508 depending on the pixel geometry to either...
2509 (Current_Ppem_Stretched): ... this for stretched pixels.
2510 (Current_Ppem): ... or this for square pixels.
2511 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
2512
Behdad Esfahbod1ec98b22014-08-31 08:47:11 +020025132014-08-31 Behdad Esfahbod <behdad@behdad.org>
2514
2515 Don't use `register' keyword. Fixes compiler warnings.
2516
2517 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
2518 * src/gzip/inftrees.c (huft_build): Ditto.
2519 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
2520
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -040025212014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
2522
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -04002523 [truetype] Optimize DELTAP and DELTAC.
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -04002524
2525 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
2526 calculations outside of the loop.
2527
Alexei Podtelezhnikov98688592014-08-21 23:28:52 -040025282014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
2529
2530 Fix Savannah bug #43033.
2531
2532 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2533 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
2534 64-bit type is `long'.
2535
Alexei Podtelezhnikov8fd87d42014-08-20 00:57:22 -040025362014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
2537
2538 [base] Small optimization of `FT_MulFix'.
2539
2540 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
2541 32-bit calculations.
2542
Alexei Podtelezhnikovf09326a2014-08-20 00:08:38 -040025432014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2544
2545 [base] Use unsigned calculation in `FT_MulDiv'.
2546
2547 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
2548
Alexei Podtelezhnikov382f3152014-08-18 23:16:15 -040025492014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
2550
2551 [base] Remove truncation in `FT_DivFix'.
2552
2553 * src/base/ftcalc.c (FT_DivFix): Updated.
2554
Alexei Podtelezhnikov5ef20232014-08-14 23:21:46 -040025552014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
2556
2557 Minor refactoring.
2558
2559 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
2560
25612014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovc7022462014-08-14 23:01:01 -04002562
2563 Turn FT_MSB into a macro when using gcc builtins.
2564
2565 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
2566
Alexei Podtelezhnikovf8efbcf2014-08-12 23:22:17 -040025672014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
2568
2569 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
2570
2571 * src/base/ftbbox.c (BBox_Cubic_Check): Update.
2572 (update_cubic_max): Repalce with...
2573 (cubic_peak): ... this, which now handles upscaling.
2574
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -040025752014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2576
Alexei Podtelezhnikov28018d42014-08-12 00:26:16 -04002577 [base] Handle collapsed outlines to avoid undefined FT_MSB.
2578
2579 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
2580
25812014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2582
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -04002583 [base] Restore FT_MulFix inlining.
2584
2585 * include/freetype.h (FT_MulFix): Unconditionally defined.
2586
2587 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
2588
2589 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
2590 which conditionally replaces the function with an inline version
2591 through the macro.
2592
Alexei Podtelezhnikov90be4b62014-08-08 22:27:10 -040025932014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2594
2595 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
2596
Werner Lembergd17cabf2014-07-26 09:53:50 +090025972014-07-26 Werner Lemberg <wl@gnu.org>
2598
2599 [cff] Fix typo.
2600
2601 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
2602 offsets in third quadrant.
2603
2604 Reported by maks <maksqwe1@ukr.net>.
2605
Werner Lemberg4e754132014-07-17 17:34:49 +090026062014-07-17 Werner Lemberg <wl@gnu.org>
2607
2608 Fix Savannah bug #42788.
2609
2610 * src/pfr/pfrobjs.c: Include `ftcalc.h'.
2611
Alexei Podtelezhnikovc0a6f202014-07-16 22:05:56 -040026122014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
2613
2614 Replace `ft_highpow2' function.
2615
2616 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
2617 `ft_highpow2'.
2618
2619 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
2620 it.
2621
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -040026222014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2623
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002624 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
Alexei Podtelezhnikov177982e2014-07-15 23:54:34 -04002625
26262014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2627
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -04002628 [base] Move assembler code back in the source file.
2629
2630 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
2631
2632 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2633 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
2634
2635 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
2636
26372014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikov1183cd42014-07-14 22:30:55 -04002638
2639 [base] Further clean up color bitmap conversion.
2640
2641 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
2642 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
2643
Werner Lemberg441b3f32014-07-13 02:28:14 +090026442014-07-13 Werner Lemberg <wl@gnu.org>
2645
2646 [truetype] Improve handling of buggy `prep' tables.
2647
2648 In case of an error in the `prep' table, no longer try to execute it
2649 again and again. This makes FreeType handle endless loops in buggy
2650 fonts much faster.
2651
2652 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
2653 and `cvt_ready' are now negative if not initialized yet, otherwise
2654 they indicate the error code of the last run.
2655
2656 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
2657 tt_size_done_bytecode, tt_size_init_bytecode,
2658 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
2659 Updated.
2660
2661 * src/truetype/ttgload.c (tt_loader_init): Updated.
2662 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
2663 and `prep' only if we are in the `glyf' table.
2664
Werner Lemberge98e2bc2014-07-12 16:37:39 +090026652014-07-12 Werner Lemberg <wl@gnu.org>
2666
2667 * builds/vms/ftconfig.h: Synchronize.
2668 Problem reported by Alexei.
2669
Alexei Podtelezhnikov35576bf2014-07-11 22:40:34 -040026702014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2671
2672 [base] Clean up bitmap conversion.
2673
2674 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
2675 appropriate FT_DivFix and remove superfluous upscaling.
2676
Alexei Podtelezhnikovceab95a2014-07-04 23:01:32 -040026772014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
2678
2679 [base] Small optimization of the ancient code.
2680
2681 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
2682 condition for direct 32-bit calculations.
2683
Werner Lemberg38975562014-06-27 06:55:56 +020026842014-06-27 Werner Lemberg <wl@gnu.org>
2685
2686 Fix Apple standard glyph names.
2687
2688 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
2689 `tools/glnames.py'
2690
2691 Problem reported by Adam Twardoch <adam@fontlab.com>.
2692
Werner Lembergcf2347c2014-06-17 09:01:04 +020026932014-06-17 Werner Lemberg <wl@gnu.org>
2694
Werner Lemberg231171f2014-06-17 09:14:32 +02002695 Partially revert commit from 2014-06-13.
2696
2697 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
2698 declaration of `p_first' and `p_last' out of the loop.
2699
27002014-06-17 Werner Lemberg <wl@gnu.org>
2701
Werner Lembergcf2347c2014-06-17 09:01:04 +02002702 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
2703
2704 This simplifies cross-compiling.
2705
Werner Lemberg6497b9c2014-06-13 09:28:00 +020027062014-06-13 Werner Lemberg <wl@gnu.org>
2707
Werner Lemberge5c0fff2014-06-13 14:01:20 +02002708 Fix more compiler warnings.
2709 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2710
2711 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2712 Make integer constant unsigned.
2713
2714 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
2715 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
2716 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
2717 casts.
2718
27192014-06-13 Werner Lemberg <wl@gnu.org>
2720
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002721 Fix compiler warnings.
2722 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2723
2724 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002725 src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002726 `unsigned' issues.
2727
2728 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
2729 happy.
2730
2731 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
2732 for `fir'.
2733 Fix `signed' vs. `unsigned' issues.
2734
2735 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
2736 (WRITE_USHORT, WRITE_ULONG): Add proper casts.
2737
2738 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
2739
2740 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
2741 and `B2'.
2742
Alexey Petruchik02f21702014-05-16 08:09:43 +020027432014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
2744
2745 [cmake] Add option to build OS X framework.
2746
2747 * CMakeLists.txt: Update accordingly.
2748
2749 * builds/mac/freetype-Info.plist: New file.
2750
Pavel Koshevoy15da66a2014-05-13 07:33:48 +020027512014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
2752
2753 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
2754
Werner Lemberg07e7b8a2014-05-11 08:00:25 +020027552014-05-11 Werner Lemberg <wl@gnu.org>
2756
Werner Lembergfaa21472014-05-11 12:44:00 +02002757 [autofit] Fix variable initializations.
2758
2759 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
2760 values to `in_dir' and `out_dir' for all points.
2761
27622014-05-11 Werner Lemberg <wl@gnu.org>
2763
Werner Lemberg07e7b8a2014-05-11 08:00:25 +02002764 [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
2765
2766 Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
2767
2768 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
2769 finding first non-near point.
2770 Properly initialize non-near point deltas.
2771
Werner Lemberg63bef9a2014-05-01 07:16:05 +020027722014-05-01 Werner Lemberg <wl@gnu.org>
2773
Werner Lembergc576bb02014-05-01 17:24:19 +02002774 [autofit] Add blue-zone support for Devanagari.
2775
2776 This essentially moves the Devanagari script from the `Indic' hinter
2777 to the `Latin' hinter. Thanks to Girish Dalvi
2778 <girish.dalvi@gmail.com> for guidance with blue zone characters!
2779
2780 * src/autofit/afblue.dat: Add blue zone data for Devanagari.
2781
2782 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2783
2784 * src/autofit/afscript.h: Add Devanagari standard characters and
2785 move data out of AF_CONFIG_OPTION_INDIC block.
2786
2787 * src/autofit/afranges.c: Move Devanagari data out of
2788 AF_CONFIG_OPTION_INDIC block.
2789 Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
2790
2791 * src/autofit/afstyles.h: Update Devanagari data; in particular, use
2792 AF_WRITING_SYSTEM_LATIN.
2793
27942014-05-01 Werner Lemberg <wl@gnu.org>
2795
Werner Lemberg63bef9a2014-05-01 07:16:05 +02002796 [autofit] Fix handling of neutral blue zones in stems.
2797
2798 * src/autofit/afhints.h (AF_Edge_Flags): New value
2799 `AF_EDGE_NEUTRAL'.
2800
2801 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
2802 neutral blue zones with AF_EDGE_NEUTRAL.
2803 (af_latin_hint_edges): Skip neutral blue zones if necessary.
2804
Werner Lembergccfc4b42014-04-28 21:13:14 +020028052014-04-28 Werner Lemberg <wl@gnu.org>
2806
2807 [autofit] Introduce neutral blue zones to the latin module.
2808
2809 Such blue zones match either the top or the bottom of a contour. We
2810 need them for scripts where accent-like elements directly touch the
2811 base character (for example, some vowel signs in Devanagari, cf.
2812 U+0913 or U+0914).
2813
2814 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
2815 property.
2816
2817 * src/autofit/afblue.h: Regenerated.
2818
2819 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
2820 (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
2821
2822 * src/autofit/aflatin.c (af_latin_metrics_init_blues,
2823 af_latin_hints_compute_blue_edges): Handle neutral blue zones.
2824
Werner Lembergabb3fca2014-04-25 22:13:32 +020028252014-04-25 Werner Lemberg <wl@gnu.org>
2826
2827 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
2828
2829 Using input glyph coverage data is simply wrong.
2830
2831 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
2832 Mantas MikulÄ—nas <grawity@gmail.com>.
2833
Werner Lembergf1936372014-04-23 08:22:33 +020028342014-04-23 Werner Lemberg <wl@gnu.org>
2835
2836 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
2837
2838 This spot has been missed while introducing support for various
2839 drop-out modes years ago (including no drop-out mode, which this
2840 commit fixes).
2841
2842 Problem reported by Patrick Thomas <pthomas505@gmail.com>.
2843
Werner Lembergd9b44702014-04-22 07:33:07 +020028442014-04-22 Werner Lemberg <wl@gnu.org>
2845
2846 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
2847
Werner Lemberg98e510e2014-04-20 22:11:27 +020028482014-04-20 Werner Lemberg <wl@gnu.org>
2849
2850 [autofit] Fix Savannah bug #42148.
2851
2852 The adaptation of the cjk auto-hinter module to blue stringsets in
2853 2013-08-25 had three severe bugs. Mea culpa.
2854
2855 1. Contrary to the latin auto-hinter, characters for reference and
2856 overshoot values of a blue zone are specified separately. Due to
2857 the screwed-up change it didn't work at all.
2858
2859 2. A boolean comparison was erroneously replaced with a cast,
2860 causing invalid results with the `^' operator later on. The
2861 visual artifact caused by this problem is the topic of the bug
2862 report.
2863
2864 3. Two flag values were inverted, causing incorrect assignment of
2865 reference and overshoot values.
2866
2867 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
2868 syntax to have both reference and overshoot characters in a single
2869 string. This is error #1.
2870 Add extensive comments.
2871
2872 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
2873 longer used.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002874 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002875 This is error #3.
2876
2877 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2878
2879 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
2880 Use character `|' to separate characters for reference and overshoot
2881 values.
2882 Improve tracing messages, synchronizing them with the latin
2883 auto-hinter.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002884 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002885 This is error #2.
2886 (af_cjk_align_linked_edge): Add tracing message.
2887
2888 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
2889 used.
2890
Werner Lembergbbd83132014-04-17 01:24:36 +020028912014-04-17 Werner Lemberg <wl@gnu.org>
2892
Werner Lemberg8c7fb782014-04-17 15:53:25 +02002893 [autofit] More coverage fixes for complex scripts.
2894
2895 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
2896 of GSUB lookups into output coverage. Otherwise, ligatures are not
2897 handled properly.
2898 Don't check blue zone characters for default coverage.
2899
29002014-04-17 Werner Lemberg <wl@gnu.org>
2901
Werner Lembergbbd83132014-04-17 01:24:36 +02002902 Make `FT_Get_SubGlyph_Info' actually work.
2903
2904 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
2905 if there is no error.
2906
Werner Lemberg181fd072014-04-15 16:47:05 +020029072014-04-15 Werner Lemberg <wl@gnu.org>
2908
2909 [afblue.pl]: Minor improvements.
2910
2911 * src/tools/afblue.pl: Allow whitespace before comments.
2912 Ignore whitespace in strings.
2913
Werner Lemberg8b1f2a62014-04-14 07:58:19 +020029142014-04-14 Werner Lemberg <wl@gnu.org>
2915
2916 [autofit] Improve coverage handling.
2917
2918 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
2919 appearing in the GPOS table if we are processing the default
2920 coverage.
2921
David Weber76307872014-04-13 15:41:13 +020029222014-04-13 David Weber <weber.aulendorf@googlemail.com>
2923
2924 [smooth] Fix stand-alone compilation.
2925
2926 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
2927
Werner Lemberg8a94b1e2014-04-12 20:44:33 +020029282014-04-12 Werner Lemberg <wl@gnu.org>
2929
2930 [autofit] Redesign the recognition algorithm of strong points.
2931
2932 In particular, local extrema without horizontal or vertical segments
2933 are better recognized:
2934
2935 + A + D
2936 \ /
2937 \ /
2938 \ /
2939 \ /
2940 \ + C
2941 \ /
2942 B +/
2943
2944 If the distances AB and CD are large, point B wasn't previously
2945 detected as an extremum since the `ft_corner_is_flat' function
2946 `swallowed' BC regardless of its direction, tagging point B as weak.
2947 The next iteration started at B and made `ft_corner_is_flat' swallow
2948 point C, tagging it as weak also, et voilà.
2949
2950 To improve that, another pass gets now performed before calling
2951 `ft_corner_is_flat' to improve the `topology' of an outline: A
2952 sequence of non-horizontal or non-vertical vectors that point into
2953 the same quadrant are handled as a single, large vector.
2954
2955 Additionally, distances of near points are now accumulated, which
2956 makes the auto-hinter handle them as if they were prepended to the
2957 next non-near vector.
2958
2959 This generally improves the auto-hinter's rendering results.
2960
2961 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
2962
2963 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
2964 `AF_FLAG_NEAR'.
2965
Werner Lemberg71f53e12014-04-05 16:27:19 +020029662014-04-05 Werner Lemberg <wl@gnu.org>
2967
2968 [autofit] Improve scoring algorithm for identifying stems.
2969
2970 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
2971
2972 The new algorithm takes care of the width of stems: If the distance
2973 between two segments is larger than the largest stem width, the
2974 demerits quickly increase for larger distances. This improves
2975 hinting of slanted fonts (especially if the inner parts of serifs
2976 have non-horizontal `shoulders'), avoiding false stem links.
2977
2978 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
2979 stem width (if available) to compute better demerits for distances
2980 between stems.
2981 (af_latin_hints_detect_features): Pass stem width array and array
2982 size.
2983 (af_latin_metrics_init_widths): Updated to use original algorithm.
2984 (af_latin_hints_apply): Updated to use new algorithm.
2985
2986 * src/autofit/aflatin.h: Updated.
2987 * src/autofit/afcjk.c: Updated.
2988
Werner Lembergf8555b52014-04-03 05:45:38 +020029892014-04-03 Werner Lemberg <wl@gnu.org>
2990
2991 Don't require `gzip' module for `sfnt'.
2992
2993 Reported by Preet <prismatic.project@gmail.com>.
2994
2995 * src/sfnt/sfobjs.c (woff_open_font): Guard use of
2996 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
2997
Werner Lembergf41070f2014-03-27 17:38:23 +010029982014-03-27 Werner Lemberg <wl@gnu.org>
2999
3000 Fix Savannah bug #38235.
3001
3002 Work around a bug in pkg-config version 0.28 and earlier: If a
3003 variable value gets surrounded by doublequotes (in particular values
3004 for the `prefix' variable), the prefix override mechanism fails.
3005
3006 * builds/unix/freetype2.in: Don't use doublequotes.
3007 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
3008 names with backslashes.
3009
Werner Lembergab76d972014-03-24 19:45:03 +010030102014-03-24 Werner Lemberg <wl@gnu.org>
3011
3012 Fix Savannah bug #41946.
3013
3014 Based on a patch from Marek Kašík <mkasik@redhat.com>.
3015
3016 * builds/unix/configure.raw (LIBS_CONFIG): Remove.
3017 * builds/unix/freetype-config.in (libs): Hard-code value.
3018 * builds/unix/unix-def.in: Updated.
3019
Werner Lembergd5159922014-03-22 06:20:54 +010030202014-03-22 Werner Lemberg <wl@gnu.org>
3021
3022 Another revert for the change from 2014-03-18.
3023
3024 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
3025
3026 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
3027 gets always exported.
3028
Werner Lembergf0c471a2014-03-20 07:13:12 +010030292014-03-20 Werner Lemberg <wl@gnu.org>
3030
3031 CMakeLists.txt: Another fix for include directories.
3032
3033 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
3034
Werner Lembergcc7cf2c2014-03-19 07:35:35 +010030352014-03-19 Werner Lemberg <wl@gnu.org>
3036
Werner Lemberg606c74f2014-03-19 23:46:42 +01003037 CMakeLists.txt: Fix include directories.
3038
3039 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
3040
30412014-03-19 Werner Lemberg <wl@gnu.org>
3042
Werner Lembergcc7cf2c2014-03-19 07:35:35 +01003043 Partially revert last commit.
3044
3045 Found by Alexei.
3046
3047 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
3048 those variables is plain wrong, since we are in a loop.
3049
Sean McBride87628722014-03-18 08:39:35 +010030502014-03-18 Sean McBride <sean@rogue-research.com>
3051 Werner Lemberg <wl@gnu.org>
3052
3053 Fix clang warnings.
3054
3055 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
3056 some variables.
3057
3058 * src/base/ftcalc.c (FT_MulFix): Only use code if
3059 `FT_MULFIX_INLINED' is not defined.
3060
3061 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
3062 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
3063 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
3064 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
3065 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
3066 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
3067 function static.
3068
3069 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
3070 code.
3071
Werner Lemberg23367ff2014-03-17 07:33:14 +010030722014-03-17 Werner Lemberg <wl@gnu.org>
3073
3074 Fix Savannah bug #41869.
3075
3076 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
3077 validate glyph indices returned by
3078 `hb_ot_layout_lookup_collect_glyphs'.
3079
3080 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
3081
3082 * docs/CHANGES: Updated.
3083
Werner Lemberg03181682014-03-14 08:06:06 +010030842014-03-14 Werner Lemberg <wl@gnu.org>
3085
3086 * builds/unix/configure.raw: Don't show error messages of `which'.
3087
Alan Coopersmithed372b72014-03-09 06:14:12 +010030882014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
3089
3090 Fix cppcheck 1.64 warning.
3091
3092 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
3093 dereference in case of error.
3094
Werner Lemberg1a69dc72014-03-09 06:06:58 +010030952014-03-09 Sean McBride <sean@rogue-research.com>
3096
3097 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
3098
Werner Lemberg05565362014-03-06 18:56:58 +010030992014-03-06 Werner Lemberg <wl@gnu.org>
3100
Werner Lembergec8853c2014-03-06 19:13:45 +01003101 * Version 2.5.3 released.
3102 =========================
3103
3104
3105 Tag sources with `VER-2-5-3'.
3106
3107 * docs/VERSION.DLL: Update documentation and bump version number to
3108 2.5.3.
3109
3110 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3111 builds/windows/vc2005/index.html,
3112 builds/windows/vc2008/freetype.vcproj,
3113 builds/windows/vc2008/index.html,
3114 builds/windows/vc2010/freetype.vcxproj,
3115 builds/windows/vc2010/index.html,
3116 builds/windows/visualc/freetype.dsp,
3117 builds/windows/visualc/freetype.vcproj,
3118 builds/windows/visualc/index.html,
3119 builds/windows/visualce/freetype.dsp,
3120 builds/windows/visualce/freetype.vcproj,
3121 builds/windows/visualce/index.html,
3122 builds/wince/vc2005-ce/freetype.vcproj,
3123 builds/wince/vc2005-ce/index.html,
3124 builds/wince/vc2008-ce/freetype.vcproj,
3125 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
3126
3127 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
3128
3129 * builds/unix/configure.raw (version_info): Set to 17:2:11.
3130 * CMakeLists.txt (VERSION_PATCH): Set to 3.
3131 * docs/CHANGES: Updated.
3132
31332014-03-06 Werner Lemberg <wl@gnu.org>
3134
Werner Lemberg05565362014-03-06 18:56:58 +01003135 Fixes for compilation with C++.
3136
3137 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
3138 (af_get_coverage): Updated.
3139 (COVERAGE): Add cast.
3140
Sean McBrideb24e8d32014-03-06 14:54:22 +010031412014-03-06 Sean McBride <sean@rogue-research.com>
3142
3143 Remove more clang analyzer warnings.
3144
3145 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
3146 (TT_Load_Glyph): Remove dead stores.
3147
Werner Lemberga32758f2014-03-05 08:02:46 +010031482014-03-05 Werner Lemberg <wl@gnu.org>
3149
3150 * builds/unix/configure.raw: Simplify.
3151
suzuki toshiya382f3ef2014-03-05 10:19:15 +090031522014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3153
3154 Fix a bug in configure in library dependency setting
Werner Lemberga32758f2014-03-05 08:02:46 +01003155 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
suzuki toshiya382f3ef2014-03-05 10:19:15 +09003156
3157 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
3158
Werner Lembergf48f7dc2014-03-04 04:40:07 +010031592014-03-04 Werner Lemberg <wl@gnu.org>
3160
3161 Minor fix for `make devel'.
3162
3163 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
3164 pkg-config for bzip2 since not all GNU/Linux distributions have
3165 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
3166 normally).
3167
Werner Lemberg7ac76b52014-03-04 04:29:17 +010031682014-03-04 Sean McBride <sean@rogue-research.com>
3169
3170 Fix several clang static analyzer dead store warnings.
3171
3172 * src/autofit/afhints.c (af_glyph_hints_reload,
3173 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
3174
3175 * src/bdf/bdflib.c (bdf_font_load): Ditto.
3176
3177 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
3178 psh_glyph_interpolate_other_points): Ditto.
3179
3180 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
3181
Werner Lemberg93ebcbd2014-03-03 07:13:45 +010031822014-03-03 Werner Lemberg <wl@gnu.org>
3183
3184 Rewrite library option handling in `configure'.
3185
3186 o Introduce `auto' value for `--with-XXX' library options; this is
3187 now the default.
3188
3189 o First use `pkg-config' for library detection, then fall back to
3190 other tests.
3191
3192 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
3193 --with-harfbuzz): Rewrite.
3194 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
3195 variables to collect data for `freetype2.pc' and `freetype-config'.
3196 (FT2_EXTRA_LIBS): Renamed to ...
3197 (ft2_extra_libs): This since it gets no longer substituted.
3198 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
3199 New output variables, replacing `XXX_PKG' and `LIBXXX'.
3200 Add notice at the end of `configure' showing the library
3201 configuration.
3202
3203 * builds/unix/freetype-config.in (--static): New command line
3204 option.
3205 (libs): Updated.
3206 (staticlibs): New variable, to be used if `--static' is given.
Werner Lemberg8fa69a82014-12-03 20:07:14 +01003207 * docs/freetype-config.1: Document `--static'.
Werner Lemberg93ebcbd2014-03-03 07:13:45 +01003208
3209 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
3210
Werner Lemberg86026a42014-03-01 06:57:19 +010032112014-03-01 Werner Lemberg <wl@gnu.org>
3212
Werner Lemberge962a912014-03-01 21:00:02 +01003213 Avoid `long long' warnings with older gcc compilers.
3214 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3215
3216 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
3217 versions < 4.6. This is especially needed for Max OS X since this
3218 OS runs a gcc variant (or emulation) based on version 4.2.1.
3219
32202014-03-01 Werner Lemberg <wl@gnu.org>
3221
Werner Lemberg6030a9f2014-03-01 14:01:12 +01003222 * docs/INSTALL.CROSS: Revised and updated.
3223
32242014-03-01 Werner Lemberg <wl@gnu.org>
3225
Werner Lemberg646db052014-03-01 12:48:07 +01003226 Make `make clean' remove `freetype2.pc'.
3227
3228 This is a generated file at build time, not configure time.
3229
3230 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
3231 (CLEAN): This variable.
3232
32332014-03-01 Werner Lemberg <wl@gnu.org>
3234
Werner Lemberg00c79ed2014-03-01 12:32:20 +01003235 Use pkg-config for detecting libpng and libbz2 also.
3236
3237 * builds/unix/configure.raw (HAVE_PKG): New variable.
3238 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
3239 Search for libpng using `pkg-config'.
3240 Fix definition of `LIBHARFBUZZ' variable.
3241 * builds/unix/freetype-config.in ($libs): Updated.
3242 * builds/unix/freetype2.in: Add `URL' field.
3243 Update `Requires.private' and `Libs.private'.
3244 * builds/unix/unix-def.in: Updated.
3245
32462014-03-01 Werner Lemberg <wl@gnu.org>
3247
Werner Lemberg86026a42014-03-01 06:57:19 +01003248 Add configure support for HarfBuzz.
3249
3250 * builds/unix/pkg.m4: New file.
3251 * builds/unix/configure.raw: Search for libharfbuzz using
3252 `pkg-config'.
3253 Add `--without-harfbuzz' option.
3254 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
3255 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
3256 HarfBuzz.
3257
3258 * docs/INSTALL.UNIX: Document interdependency of Freetype with
3259 HarfBuzz.
3260
Alexei Podtelezhnikov6adda682014-02-28 09:24:26 +010032612014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
3262
3263 [cff] Math simplifications.
3264
3265 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
3266 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
3267
Dave Arnold0eae6eb2014-02-28 07:40:01 +010032682014-02-28 Dave Arnold <darnold@adobe.com>
3269
Dave Arnold135c3fa2014-02-28 07:42:42 +01003270 [cff] Fix Savannah bug #41697, part 2.
3271
3272 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
3273 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
3274 a subroutine if no subroutines exist. This is an error but should
3275 not trigger an assert. Split the assert to account for this.
3276
32772014-02-28 Dave Arnold <darnold@adobe.com>
3278
Dave Arnold0eae6eb2014-02-28 07:40:01 +01003279 [cff] Fix Savannah bug #41697, part 1.
3280
3281 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
3282 invalid. In this case, it is not safe to use the length of
3283 `hStemHintArray'; the exception has already been recorded in
3284 `hintMask'.
3285
Werner Lembergeee4ff82014-02-26 18:12:36 +010032862014-02-26 Werner Lemberg <wl@gnu.org>
3287
Werner Lemberga2b5f662014-02-26 19:50:18 +01003288 [sfnt] Fix Savannah bug #41696.
3289
3290 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
3291 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
3292
32932014-02-26 Werner Lemberg <wl@gnu.org>
3294
Werner Lembergeee4ff82014-02-26 18:12:36 +01003295 [winfnt] Fix Savannah bug #41694.
3296
3297 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
3298
32992014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg9a567642014-02-26 13:08:07 +01003300
Werner Lemberg08c628d2014-02-26 14:18:03 +01003301 [cff] Fix Savannah bug #41693.
3302
3303 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
3304
Werner Lembergeee4ff82014-02-26 18:12:36 +010033052014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg08c628d2014-02-26 14:18:03 +01003306
Werner Lemberg9a567642014-02-26 13:08:07 +01003307 [bdf] Fix Savannah bug #41692.
3308
3309 bdflib puts data from the input stream into a buffer in chunks of
3310 1024 bytes. The data itself gets then parsed line by line, simply
3311 increasing the current pointer into the buffer; if the search for
3312 the final newline character exceeds the buffer size, more data gets
3313 read.
3314
3315 However, in case the current line's end is very near to the buffer
3316 end, and the keyword to compare with is longer than the current
3317 line's length, an out-of-bounds read might happen since `memcmp'
3318 doesn't stop properly at the string end.
3319
3320 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
3321 stop at string ends.
3322
suzuki toshiya91c7a972014-02-17 16:38:31 +090033232014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3324
3325 [autofit] Fix `make multi' compilation.
3326
suzuki toshiyacc9a0c22014-02-17 16:43:54 +09003327 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
suzuki toshiya91c7a972014-02-17 16:38:31 +09003328
Werner Lemberg6b290fd2014-02-19 09:26:54 +010033292014-02-19 Werner Lemberg <wl@gnu.org>
3330 Simon Bünzli <zeniko@gmail.com>
3331
3332 Fix Savannah bug #32902.
3333
3334 Patch taken from
3335
3336 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
3337
3338 with slight modifications.
3339
3340 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
3341 handle fonts that incorrectly use \r at the beginning of an eexec
3342 block.
3343
Simon Bünzlidf14e6c2014-02-19 08:42:52 +010033442014-02-19 Simon Bünzli <zeniko@gmail.com>
3345
3346 Fix Savannah bug #41590.
3347
3348 * src/type1/t1load.c (parse_encoding): Protect against invalid
3349 number.
3350
Dave Arnold89a94d42014-02-12 23:45:47 +010033512014-02-12 Dave Arnold <darnold@adobe.com>
3352
3353 [cff] Optimize by using `FT_MulDiv'.
3354 Suggested by Alexei.
3355
3356 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
3357
Werner Lemberg85ee27a2014-02-12 23:27:41 +010033582014-02-12 Werner Lemberg <wl@gnu.org>
3359
3360 Fix Savannah bug #41465.
3361
3362 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
3363 (DISTCLEAN): Remove `freetype-config'.
3364
Sean McBride7be2a942014-02-08 13:55:38 +010033652014-02-08 Sean McBride <sean@rogue-research.com>
3366
3367 Fix clang static analyzer and compiler warnings.
3368
3369 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
3370 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
3371 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
3372 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
3373 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
3374 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
3375 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
3376 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
3377 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
3378 code.
3379
3380 * src/autofit/afmodule.c (af_property_get_face_globals,
3381 af_property_set, af_property_get), src/base/ftbitmap.c
3382 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
3383
3384 * src/base/ftobjs.c (ft_remove_renderer): Protect against
3385 library == NULL.
3386 (ft_property_do): Make function static.
3387
3388 * src/base/ftrfork.c: Include `ftbase.h'.
3389
3390 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
3391 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
3392 (T1_Compute_Max_Advance): Avoid compiler warning.
3393
3394 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
3395 variable.
3396
Werner Lembergab98c5e2014-02-08 11:34:33 +010033972014-02-08 Werner Lemberg <wl@gnu.org>
3398
3399 Fix Windows build directories.
3400
3401 The build target is now `windows' instead of `win32'.
3402
3403 Problem reported by Nickolas George <darknova.clan@gmail.com>.
3404
3405 * builds/modules.mk: Don't use `win32' and `win16' (!) but
3406 `windows'.
3407
3408 * builds/windows/detect.mk, builds/windows/win32-def.mk:
3409 s/win32/windows/.
3410
Eugen Sawina8ceae42014-02-08 06:30:06 +010034112014-02-08 Eugen Sawin <esawin@mozilla.com>
3412
3413 Fix Savannah bug #41507.
3414
3415 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
3416 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
3417
Dave Arnold355b3592014-02-08 06:23:04 +010034182014-02-08 Dave Arnold <darnold@adobe.com>
3419
3420 [cff] Fix minor performance bug.
3421
3422 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
3423 calculations are now cached and not recomputed on each glyph.
3424
Werner Lemberg6dce1362014-02-05 15:40:47 +010034252014-02-05 Werner Lemberg <wl@gnu.org>
3426
3427 Fix problems with perl 5.8.8 as distributed with current MinGW.
3428
3429 * src/tools/afblue.pl: Work-around for Perl bug #63402.
3430 (string_re): Avoid `possessive quantifiers', which have been
3431 introduced in Perl version 5.10.
3432
Werner Lemberga8772912014-02-04 11:36:08 +010034332014-02-04 Werner Lemberg <wl@gnu.org>
3434
Werner Lembergd87f9a62014-02-04 16:14:09 +01003435 Fix compilation with MinGW.
3436
3437 Right now, compilation out of the box with latest MinGW is broken
3438 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
3439 cf.
3440
3441 https://sourceforge.net/p/mingw/bugs/2024/
3442 https://sourceforge.net/p/mingw/bugs/2046/
3443
3444 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
3445
34462014-02-04 Werner Lemberg <wl@gnu.org>
3447
Werner Lemberga8772912014-02-04 11:36:08 +01003448 [autofit] Minor fix.
3449
3450 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3451 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
3452 of alternative standard characters.
3453 This also fixes a compilation warning in non-debug mode.
3454
Werner Lembergee3778d2014-02-03 11:16:47 +010034552014-02-03 Werner Lemberg <wl@gnu.org>
3456
3457 [cff] Fix Savannah bug #41363.
3458
3459 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
3460 parameter check.
3461 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
3462 we are scaling the outline.
3463 (cf2_getPpemY): Remove problematic assertion.
3464
Werner Lemberga3364002014-01-26 09:45:23 +010034652014-01-26 Werner Lemberg <wl@gnu.org>
3466
3467 [autofit] Introduce two more slots for standard characters.
3468
3469 This is useful for OpenType features like `c2sc' (caps to small
3470 caps) that don't have lowercase letters by definition, or other
3471 features that mainly operate on numerals.
3472
3473 * src/autofit/afscript.h: Add more standard characters.
3474
3475 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
3476 (AF_ScriptClassRec): Add members to hold two more standard
3477 characters.
3478 (AF_DEFINE_SCRIPT_CLASS): Updated.
3479
3480 * src/autofit/afglobal.c, src/autofit/afglobal.h,
3481 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
3482 Update use of `SCRIPT' macro.
3483
3484 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3485 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
3486 standard characters.
3487
Werner Lembergeb7691c2014-01-24 19:04:22 +010034882014-01-24 Werner Lemberg <wl@gnu.org>
3489
3490 Fix Savannah bug #41320.
3491
3492 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
3493 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
3494
Werner Lemberg8b281f82014-01-23 08:14:53 +010034952014-01-23 Werner Lemberg <wl@gnu.org>
3496
Werner Lemberg752f3912014-01-23 09:14:25 +01003497 Fix Savannah bug #41310.
3498
3499 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
3500 Don't check metrics, which this format doesn't have.
3501 This is another correction to the commit from 2013-11-21.
3502
35032014-01-23 Werner Lemberg <wl@gnu.org>
3504
Werner Lemberg8b281f82014-01-23 08:14:53 +01003505 Fix Savannah bug #41309.
3506
3507 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
3508 of `T1_ToFixedArray'.
3509
3510 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
3511 `t1_parse_font_matrix'.
3512
3513 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
3514 `t1_parse_font_matrix'.
3515 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
3516
3517 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
3518 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
3519
Werner Lembergff8dc312014-01-22 09:19:57 +010035202014-01-22 Werner Lemberg <wl@gnu.org>
3521
3522 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
3523
Werner Lemberg6a700782014-01-16 08:55:40 +010035242014-01-16 Werner Lemberg <wl@gnu.org>
3525
3526 [autofit] Improve tracing of style coverages.
3527
3528 * include/internal/fttrace.h: Add `afglobal' for tracing style
3529 coverages.
3530
3531 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
3532 (FT_COMPONENT): Define.
3533 (af_face_globals_compute_style_coverage): Trace `gstyles' array
3534 data.
3535
Werner Lemberg7cbfdff2014-01-09 07:26:06 +010035362014-01-09 Werner Lemberg <wl@gnu.org>
3537
3538 Fix Savannah bug #41158.
3539
3540 * builds/unix/install.mk (install): Create man page directory.
3541
Chongyu Zhu94c66942014-01-08 08:52:59 +010035422014-01-08 Chongyu Zhu <lembacon@gmail.com>
3543
3544 [arm] Fix Savannah bug #41138, part 2.
3545
3546 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
3547 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
3548 preprocessor conditionals for `add.w'.
3549
Werner Lembergc46fa862014-01-08 08:45:40 +010035502014-01-08 Werner Lemberg <wl@gnu.org>
3551
3552 [autofit] Fix Savannah bug #41138, part 1.
3553
3554 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
3555 enumeration names for generated `#else'.
3556
3557 * src/autofit/afblue.h: Regenerated.
3558
Werner Lemberg3e5a3742014-01-06 07:53:10 +010035592014-01-06 Werner Lemberg <wl@gnu.org>
3560
3561 Add manual page for `freetype-config'.
3562 Contributed by Nis Martensen <nis.martensen@web.de>.
3563
3564 * docs/freetype-config.1: New file.
3565
3566 * builds/unix/unix-def.in (mandir): Define.
3567 * builds/unix/install.mk (install, uninstall): Handle manpage.
3568
Werner Lemberg991cbcc2014-01-05 13:24:56 +010035692014-01-05 Werner Lemberg <wl@gnu.org>
3570
3571 [autofit] Minor fixes for `afblue.pl'.
3572
3573 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
3574 <Handling #endif>: Use proper indentation for generated `#else'.
3575
3576 * src/autofit/afblue.h: Regenerated.
3577
Werner Lemberg0d977442014-01-04 11:46:34 +010035782014-01-04 Werner Lemberg <wl@gnu.org>
3579
3580 [autofit] Fix Indic scripts.
3581
3582 Split the single, incorrect Indic entry into separate scripts so
3583 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
3584 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
3585 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
3586 entries for Meetai Mayak and Sharada – the Unicode ranges were
3587 incorrect (and nobody has complained about that), fonts are scarce
3588 for those scripts, and the Indic auto-hinter support is rudimentary
3589 anyways.
3590
3591 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
3592 AF_CONFIG_OPTION_CJK.
3593
3594 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
3595 Use it, together with AF_CONFIG_OPTION_INDIC and
3596 AF_CONFIG_OPTION_CJK, to update.
3597
3598 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
3599 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
3600 Sort entries by tags.
3601
Werner Lemberg5c7f5502014-01-03 10:48:26 +010036022014-01-03 Werner Lemberg <wl@gnu.org>
3603
Werner Lembergecdb0e32014-01-03 20:49:31 +01003604 [autofit] Thinko.
3605
3606 * src/autofit/hbshim.c (af_get_char_index): Similar to
3607 `af_get_coverage', reject glyphs which are not substituted.
3608
36092014-01-03 Werner Lemberg <wl@gnu.org>
3610
Werner Lemberga42f9182014-01-03 18:29:41 +01003611 [autofit] Fix handling of default coverages.
3612
Werner Lemberg1b5bc892014-01-03 18:33:24 +01003613 With this commit, the implementation of coverage handling is
3614 completed.
3615
3616 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
3617 do.
3618 Reject coverages which don't contain appropriate glyphs for blue
3619 zones.
3620
36212014-01-03 Werner Lemberg <wl@gnu.org>
3622
3623 [autofit] Fix handling of default coverages.
3624
Werner Lemberga42f9182014-01-03 18:29:41 +01003625 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3626 First handle non-default coverages, then the default coverage of the
3627 default script, and finally the other default coverages.
3628
36292014-01-03 Werner Lemberg <wl@gnu.org>
3630
Werner Lembergf45749b2014-01-03 18:09:36 +01003631 [autofit] Fix scaling of HarfBuzz shaping.
3632
3633 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
3634
36352014-01-03 Werner Lemberg <wl@gnu.org>
3636
Werner Lemberg5c7f5502014-01-03 10:48:26 +01003637 [autofit] Better ftgrid support.
3638
3639 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
3640 parameters `is_blue' and `blue_offset'.
3641
Werner Lemberg73cc8332014-01-01 07:10:36 +010036422014-01-01 Werner Lemberg <wl@gnu.org>
3643
Werner Lemberg55cd7e02014-01-02 13:07:48 +01003644 [autofit] Remove some styles.
3645
3646 * src/autofit/afcover.h: Remove coverages for alternative fractions,
3647 denominators, numerators, and fractions.
3648
3649 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
3650
36512014-01-01 Werner Lemberg <wl@gnu.org>
3652
Werner Lembergc973e672014-01-01 16:34:42 +01003653 [autofit] Add more styles.
3654
3655 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
3656 auxiliary macros; use them to define styles for Cyrillic, Greek, and
3657 Latin.
3658
3659 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
3660 Since those digits are used in combination with ordinary letters, it
3661 makes no sense to handle them separately.
3662
3663 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
3664 `options' parameter to 4 bits.
3665
36662014-01-01 Werner Lemberg <wl@gnu.org>
3667
Werner Lembergabb2f732014-01-01 08:00:16 +01003668 [autofit] Fix style assignments to glyphs.
3669
3670 * src/autofit/hbshim.c (af_get_coverage)
3671 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
3672 so that we can skip glyphs that have both GSUB and GPOS data.
3673
36742014-01-01 Werner Lemberg <wl@gnu.org>
3675
Werner Lemberg0950f3a2014-01-01 07:48:20 +01003676 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
3677
36782014-01-01 Werner Lemberg <wl@gnu.org>
3679
Werner Lemberg73cc8332014-01-01 07:10:36 +01003680 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
3681
3682 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
3683 Redefine to construct HarfBuzz features.
3684 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
3685
3686 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
3687 `y_offset' to adjust `best_y'.
3688
Werner Lembergc9d99472013-12-31 08:16:57 +010036892013-12-31 Werner Lemberg <wl@gnu.org>
3690
Werner Lemberg785f3852013-12-31 09:45:10 +01003691 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
3692
36932013-12-31 Werner Lemberg <wl@gnu.org>
3694
Werner Lembergc9d99472013-12-31 08:16:57 +01003695 [autofit] Fix interface of `af_get_char_index'.
3696
3697 * src/autofit/hbshim.c (af_get_char_index): Return error value.
3698 Add argument for y offset (to be used in a yet-to-come patch).
3699
3700 * src/autofit/hbshim.h, src/autofit/afcjk.c,
3701 src/autofit/aflatin.c: Updated.
3702
Werner Lemberg44aa7e02013-12-30 07:41:22 +010037032013-12-30 Werner Lemberg <wl@gnu.org>
3704
3705 [autofit] Don't combine multiple features into one set.
3706
3707 Combining them, as originally envisioned, would lead to much more
3708 complicated code, as investigations have shown meanwhile. The major
3709 drawback is that we run out of available style slots much earlier.
3710 However, this is only a theoretical issue since we don't support a
3711 large number of scripts currently.
3712
3713 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
3714 a single-element `COVERAGE' macro, sort the elements by the feature
3715 tags, and add entry for `ruby'.
3716
3717 * src/autofit/aftypes.h: Updated.
3718 * src/autofit/hbshim.c: Updated.
3719
Werner Lemberg6af01a02013-12-28 08:55:24 +010037202013-12-28 Werner Lemberg <wl@gnu.org>
3721
Werner Lemberg072dc452013-12-28 12:26:21 +01003722 [autofit] Code shuffling to reduce use of cpp macros.
3723
3724 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3725 Call `af_get_coverage' unconditionally.
3726
3727 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
3728
3729 * src/autofit/hbshim.c (af_get_coverage)
3730 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
3731
3732 * src/autofit/hbshim.h: Provide function declarations
3733 unconditionally.
3734
37352013-12-28 Werner Lemberg <wl@gnu.org>
3736
Werner Lemberg17af5862013-12-28 10:33:01 +01003737 [autofit] Add wrapper function for `FT_Get_Char_Index'.
3738
3739 Yet-to-come changes will provide HarfBuzz functionality for the new
3740 function.
3741
3742 * src/autofit/hbshim.c (af_get_char_index): New function.
3743 * src/autofit/hbshim.h: Updated.
3744
3745 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3746 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
3747
3748 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
3749 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
3750 Updated.
3751
37522013-12-28 Werner Lemberg <wl@gnu.org>
3753
Werner Lemberg6af01a02013-12-28 08:55:24 +01003754 [autofit] Use `global' HarfBuzz font object.
3755
3756 We now use `hb_font' instead of `hb_face' since yet-to-come changes
3757 need this.
3758
3759 * src/autofit/afglobal.h: Include `hbshim.h'.
3760 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
3761 `hb_font'.
3762
3763 * src/autofit/afglobal.c (af_face_globals_new)
3764 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
3765 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
3766 `hb_font'.
3767
3768 * src/autofit/hbshim.h: Include HarfBuzz headers.
3769
3770 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
3771 headers.
3772 (af_get_coverage): Updated.
3773
Werner Lembergd32a7d32013-12-27 19:26:04 +010037742013-12-27 Werner Lemberg <wl@gnu.org>
3775
3776 [autofit] Handle `DFLT' OpenType script for coverages.
3777
3778 * include/ftautoh.h: Document new `default-script' property.
3779
3780 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
3781 type of first parameter.
3782 (script_tags): Add one more element.
3783 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
3784
3785 * src/autofit/hbshim.h: Updated.
3786
3787 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3788 Updated.
3789
3790 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
3791
3792 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
3793 member.
3794
3795 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
3796 `default-script' property.
3797 (af_autofitter_init): Updated.
3798
suzuki toshiyae2d2b152013-12-27 16:44:24 +090037992013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3800
3801 [ftrfork] Fix the face order difference between POSIX and Carbon.
3802
3803 The fragmented resources in Suitcase and .dfont should be reordered
Werner Lemberg00a7b512013-12-27 19:18:49 +01003804 when `POST' resource for Type1 is being restored, but reordering of
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003805 sfnt resources induces the different face order. Now the ordering
Werner Lemberg00a7b512013-12-27 19:18:49 +01003806 is restricted to `POST' resource only, to prevent the different
3807 order issue (e.g. the face index in the fontconfig cache generated
3808 with Carbon framework is incompatible with that by FreeType 2
3809 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
3810
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003811 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
3812 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
3813
3814 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
Werner Lemberg44aa7e02013-12-30 07:41:22 +01003815 `sort_by_res_id' to control the fragmented resource ordering.
Werner Lemberg00a7b512013-12-27 19:18:49 +01003816 * include/internal/ftrfork.h: Declare new switch.
3817 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
3818 resource, and disable the sorting for `sfnt' resource.
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003819
Werner Lemberg5f577462013-12-25 08:50:50 +010038202013-12-25 Werner Lemberg <wl@gnu.org>
3821
3822 Fix Savannah bug #40997.
3823
3824 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
3825 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
3826 be set.
3827 * src/cff/cffobjs.c (cff_face_init): Ditto.
3828 * src/cid/cidobjs.c (cid_face_init): Ditto.
3829 * src/pcf/pcfread.c (pcf_load_font): Ditto.
3830 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
3831 * src/type1/t1objs.c (T1_Face_Init): Ditto.
3832 * src/type42/t42objs.c (T42_Face_Init): Ditto.
3833 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
3834
Werner Lembergc4e968e2013-12-21 07:23:08 +010038352013-12-21 Werner Lemberg <wl@gnu.org>
3836
Werner Lemberg19241342013-12-21 21:31:38 +01003837 [autofit] Introduce `coverages'.
3838
3839 Coverages are the interface to the HarfBuzz library to acces
3840 OpenType features for handling glyphs not addressable by the cmap.
3841
3842 Right now, compilation of HarfBuzz is only added to the development
3843 build. A solution for standard build mode will be delayed until
3844 HarfBuzz gets split into two libraries to avoid mutual dependencies
3845 between FreeType and HarfBuzz.
3846
3847 Note that this is only a first step in handling coverages, basically
3848 providing the framework only. Code for handling selected OpenType
3849 features (this is, actually using the data in `afcover.h') will
3850 follow.
3851
3852 * devel/ftoption.h, include/config/ftoption.h
3853 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
3854
3855 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
3856 New files.
3857
3858 * src/autofit/afscript.h: Add HarfBuzz script name tags.
3859
3860 * src/autofit/afstyles.h: Add default coverage enumeration values.
3861
3862 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
3863 (AF_Coverage): New enumeration (generated by `afcover.h').
3864 (AF_StyleClassRec): New member `coverage'.
3865 (AF_DEFINE_STYLE_CLASS): Updated.
3866
3867 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
3868 data.
3869
3870 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
3871 (AF_SCRIPT_FALLBACK): Renamed to ...
3872 (AF_STYLE_FALLBACK): ... this.
3873
3874 * src/autofit/afglobal.c: Include `hbshim.c'.
3875 Update use of `SCRIPT' and `STYLE' macros.
3876 (af_face_globals_compute_style_coverage)
3877 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
3878 Update.
3879
3880 * src/autofit/afmodule.h (AF_ModuleRec):
3881 s/fallback_script/fallback_style/.
3882
3883 * src/autofit/afmodule.c (af_property_set): Adapt handling of
3884 `fallback-script' property to set a fallback style.
3885 (af_property_get, af_autofitter_init): Updated.
3886
3887 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
3888
3889 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
3890
3891 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
3892 `hbshim.c'.
3893
3894 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
3895 (AUTOF_DRV_H): Add `afcover.h'.
3896
3897 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
3898 all libraries needed by FreeType.
3899
39002013-12-21 Werner Lemberg <wl@gnu.org>
3901
Werner Lembergb337fa22013-12-21 19:33:15 +01003902 Fix Savannah bug #40975 (sort of).
3903
3904 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
3905 behave the same as the Windows TrueType engine for the invalid case.
3906
39072013-12-21 Werner Lemberg <wl@gnu.org>
3908
Werner Lemberg3bf60952013-12-21 08:49:11 +01003909 [autofit] Make PIC mode work actually.
3910
3911 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
3912 enumeration values automatically generated by including `afscript.h'
3913 and friends.
3914
3915 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
3916
39172013-12-21 Werner Lemberg <wl@gnu.org>
3918
Werner Lembergbd413862013-12-21 08:14:25 +01003919 Fix PIC linking.
3920
3921 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
3922 generated function name.
3923
3924 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
3925 to ...
3926 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
3927 function name correctly corresponds to what the macro framework
3928 expects.
3929
3930 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
3931 that PIC functions are compiled also.
3932
39332013-12-21 Werner Lemberg <wl@gnu.org>
3934
Werner Lembergc4e968e2013-12-21 07:23:08 +01003935 [base] Add missing dependencies to Makefile.
3936
3937 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
3938 (BASE_H): Add `basepic.h'.
3939
Werner Lemberg974b1932013-12-20 17:26:26 +010039402013-12-20 Werner Lemberg <wl@gnu.org>
3941
Werner Lemberg8a8f3752013-12-20 18:35:35 +01003942 [autofit] Fix PIC compilation.
3943
3944 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3945 src/autofit/aflatin.c (af_latin_metrics_init_widths)
3946 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
3947
3948 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
3949 AF_DEFINE_STYLE_CLASS.
3950
3951 * src/autofit/afpic.c: Include `afglobal.h'.
3952 (autofit_module_class_pic_init): Typo.
3953
3954 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
3955 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
3956 parameter and structure member.
3957
39582013-12-20 Werner Lemberg <wl@gnu.org>
3959
Werner Lemberg974b1932013-12-20 17:26:26 +01003960 [autofit] Introduce `styles'.
3961
3962 This is the new top-level structure for handling glyph input data;
3963 scripts are now defined separately.
3964
3965 * src/autofit/aftypes.h (SCRIPT): Updated.
3966 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
3967 members to ...
3968 (AF_Style_ClassRec): ... this new structure.
3969 (AF_Style): New enumeration.
3970 (AF_StyleMetricsRec): Replace `script' enumeration with
3971 `style_class' pointer.
3972 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
3973 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
3974
3975 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
3976 * src/autofit/afscript.h: Updated.
3977
3978 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3979 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
3980
3981 * src/autofit/afglobal.c (SCRIPT): Updated.
3982 (STYLE): Redefine macro to load `afstyles.h'.
3983 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
3984 (af_style_names): ... this array.
3985 (af_face_globals_compute_script_coverage): Renamed to...
3986 (af_face_globals_compute_style_coverage): ... this.
3987 Updated.
3988 (af_face_globals_new, af_face_globals_free,
3989 af_face_globals_get_metrics): Updated.
3990
3991 * src/autofit/afglobal.h (SCRIPT): Updated.
3992 (STYLE): Redefine macro to load `afstyles.h'.
3993 (AF_SCRIPT_FALLBACK): Update definition. This will get more
3994 refinements with later on.
3995 (AF_SCRIPT_UNASSIGNED): Replace with...
3996 (AF_STYLE_UNASSIGNED): ... this macro.
3997 (AF_FaceGlobalsRec): Updated.
3998
3999 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4000 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
4001 af_latin_hint_edges): Updated.
4002
4003 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
4004 (af_ltn2_uniranges): Removed.
4005
4006 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4007 Updated.
4008
4009 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
4010 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
4011 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
4012 members.
4013
4014 * src/autofit/afranges.h: Updated.
4015
4016 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
4017
Werner Lembergd8324572013-12-19 15:45:24 +010040182013-12-19 Werner Lemberg <wl@gnu.org>
4019
4020 [autofit] Factor scripts and uniranges out of writing system files.
4021
4022 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
4023
4024 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
4025 parameters, taking data from the writing system files.
4026
4027 * src/autofit/aftypes.h: Updated.
4028
4029 * src/autofit/afglobal.c: Include `afranges.h'.
4030 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
4031 * src/autofit/afglobal.c: Include `afranges.h'.
4032 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
4033
4034 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
4035 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
4036 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
4037 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
4038 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
4039
4040 * src/autofit/afpic.c: Updated.
4041
4042 * src/autofir/autofit.c: Include `afranges.c'.
4043 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
4044
Werner Lemberg9a354552013-12-18 10:36:06 +010040452013-12-18 Werner Lemberg <wl@gnu.org>
4046
Werner Lemberg73f31982013-12-19 15:24:17 +01004047 [autofit] More code orthogonality.
4048
4049 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
4050 pointer to an `AF_ScriptClass' structure with `script' index of type
4051 `AF_Script'.
4052 Move some code around.
4053
4054 * src/autofit/afcjk.c: Include `afpic.h'.
4055 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
4056 af_cjk_hint_edges): Updated.
4057
4058 * src/autofit/aflatin.c: Include `afpic.h'.
4059 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
4060 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
4061
4062 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
4063
4064 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4065 Updated.
4066
40672013-12-18 Werner Lemberg <wl@gnu.org>
4068
Werner Lemberg3f91cb32013-12-18 12:59:35 +01004069 [autofit] s/ScriptMetrics/StyleMetrics/.
4070
40712013-12-18 Werner Lemberg <wl@gnu.org>
4072
Werner Lemberg4fccc212013-12-18 12:53:01 +01004073 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
4074
40752013-12-18 Werner Lemberg <wl@gnu.org>
4076
Werner Lembergf4df4072013-12-18 10:39:30 +01004077 [autofit] s/gscripts/gstyles/.
4078
40792013-12-18 Werner Lemberg <wl@gnu.org>
4080
Werner Lemberg9a354552013-12-18 10:36:06 +01004081 [autofit] s/glyph_scripts/glyph_styles/.
4082
4083 This is the first commit of a series to create a new top-level
4084 structure (a `style') for handling scripts, writing_systems, and
4085 soon-to-be-added coverages.
4086
Werner Lemberg7a5fc2f2013-12-17 13:29:53 +010040872013-12-17 Werner Lemberg <wl@gnu.org>
4088
4089 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
4090
Infinality8bb09b02013-12-11 09:01:13 +010040912013-12-11 Infinality <infinality@infinality.net>
4092
4093 [truetype] Simplify logic of rendering modes.
4094
4095 This patch unifies the subpixel and non-subpixel cases.
4096
4097 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
4098 `grayscale_hinting'; all code should refer to `grayscale' instead.
4099 Remove unused `native_hinting' member.
4100 Rename `subpixel_hinting' member to `subpixel.
4101
4102 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
4103 (tt_loader_init): Updated.
4104
4105 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
4106 Updated.
4107
Werner Lemberge9d95aa2013-12-11 07:48:51 +010041082013-12-11 Werner Lemberg <wl@gnu.org>
4109
4110 [documentation] Add section how to include FreeType header files.
4111 Problem reported by David Kastrup <dak@gnu.org>.
4112
4113 Surprisingly, a description how to do that was completely missing in
4114 the API reference.
4115
4116 * include/freetype.h, include/ftchapters.h: New documentation
4117 section `header_inclusion'.
4118
Werner Lemberg05c786d2013-12-10 08:38:57 +010041192013-12-10 Werner Lemberg <wl@gnu.org>
4120
Werner Lemberg91932592013-12-10 13:24:07 +01004121 [autofit] s/DFLT/NONE/, s/dflt/none/.
4122
41232013-12-10 Werner Lemberg <wl@gnu.org>
4124
Werner Lemberg45244f82013-12-10 13:18:11 +01004125 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
4126
41272013-12-10 Werner Lemberg <wl@gnu.org>
4128
Werner Lemberg69d1a362013-12-10 10:12:27 +01004129 [truetype] Fix scaling of vertical phantom points.
4130
4131 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
4132 pp4.x also.
4133
41342013-12-10 Werner Lemberg <wl@gnu.org>
4135
Werner Lemberg05c786d2013-12-10 08:38:57 +01004136 [truetype] Fix positioning of composite glyphs.
4137 Problem reported by Nigel Tao <nigeltao@golang.org>.
4138
4139 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
4140 the glyph (component) by a fractional value computed from the LSB
4141 phantom point. This is wrong, since the horizontal phantom points
4142 get rounded horizontally later on.
4143
Werner Lembergdd8050a2013-12-08 23:14:46 +010041442013-12-08 Werner Lemberg <wl@gnu.org>
4145
4146 * Version 2.5.2 released.
4147 =========================
4148
4149
4150 Tag sources with `VER-2-5-2'.
4151
4152 * docs/VERSION.DLL: Update documentation and bump version number to
4153 2.5.2.
4154
4155 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
4156 builds/windows/vc2005/index.html,
4157 builds/windows/vc2008/freetype.vcproj,
4158 builds/windows/vc2008/index.html,
4159 builds/windows/vc2010/freetype.vcxproj,
4160 builds/windows/vc2010/index.html,
4161 builds/windows/visualc/freetype.dsp,
4162 builds/windows/visualc/freetype.vcproj,
4163 builds/windows/visualc/index.html,
4164 builds/windows/visualce/freetype.dsp,
4165 builds/windows/visualce/freetype.vcproj,
4166 builds/windows/visualce/index.html,
4167 builds/wince/vc2005-ce/freetype.vcproj,
4168 builds/wince/vc2005-ce/index.html,
4169 builds/wince/vc2008-ce/freetype.vcproj,
4170 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
4171
Werner Lembergec8853c2014-03-06 19:13:45 +01004172 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01004173
4174 * builds/unix/configure.raw (version_info): Set to 17:1:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01004175 * CMakeLists.txt (VERSION_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01004176 * docs/CHANGES: Updated.
4177
Werner Lemberg98d185c2013-12-07 09:26:55 +010041782013-12-07 Werner Lemberg <wl@gnu.org>
4179
4180 [truetype] Next round in phantom point handling.
4181
4182 Greg Hitchcock provided very interesting insights into the
4183 complicated history of the horizontal positions of the TSB and BSB
4184 phantom points.
4185
4186 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
4187 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
4188 `grayscale_hinting' flags as conditionals for the x position of TSB
4189 and BSB.
4190
Werner Lembergfcdb7842013-12-05 15:53:27 +010041912013-12-05 Werner Lemberg <wl@gnu.org>
4192
4193 * builds/freetype.mk (FT_CC): Removed. Unused.
4194
Werner Lemberg64b395c2013-12-04 06:18:56 +010041952013-12-04 Werner Lemberg <wl@gnu.org>
4196
4197 [sfnt] Fix handling of embedded bitmap strikes.
4198
4199 This corrects the commit from 2013-11-21. Problem reported by
4200 Andrey Panov <panov@canopus.iacp.dvo.ru>.
4201
4202 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
4203 detect excessive bytes for bit-aligned bitmaps.
4204
Werner Lembergbdd5e752013-12-03 06:57:02 +010042052013-12-03 Werner Lemberg <wl@gnu.org>
4206
Werner Lembergc2b47532013-12-03 07:01:57 +01004207 [truetype] Remove dead code.
4208
4209 Reported by Nigel Tao <nigeltao@golang.org>.
4210
4211 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
4212 `preserve_pps' field.
4213 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
4214
42152013-12-03 Werner Lemberg <wl@gnu.org>
4216
Werner Lembergbdd5e752013-12-03 06:57:02 +01004217 [truetype] Fix phantom point handling.
4218
4219 This is a further improvement to the changes from 2013-11-06.
4220
4221 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
4222 are rounded horizontally, vertical ones are rounded vertically.
4223 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
4224 points in pre-ClearType mode is zero, as shown in the OpenType
4225 specification.
4226
Werner Lemberg64872a52013-12-02 07:51:17 +010042272013-12-02 Werner Lemberg <wl@gnu.org>
4228
4229 [truetype] Fix change from 2013-11-20.
4230
4231 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
4232
4233 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
4234 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
4235 `IS_HINTED' clause.
4236 Also remove redundant check using `maxSizeOfInstructions' – in
4237 simple glyphs, the bytecode data comes before the outline data, and
4238 a validity test for this is already present.
4239
Werner Lemberg52166ab2013-11-27 10:10:16 +010042402013-11-27 Werner Lemberg <wl@gnu.org>
4241
4242 [autofit] Fix use of dumping functions in `ftgrid' demo program.
4243
4244 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
4245 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
4246 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
4247 handle output to stdout.
4248 Use AF_DUMP.
4249 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
4250 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
4251
Werner Lemberg3aee4292013-11-25 00:28:11 +010042522013-11-25 Werner Lemberg <wl@gnu.org>
4253
4254 * Version 2.5.1 released.
4255 =========================
4256
4257
4258 Tag sources with `VER-2-5-1'.
4259
4260 * docs/VERSION.DLL: Update documentation and bump version number to
4261 2.5.1.
4262
4263 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
4264 builds/windows/vc2005/index.html,
4265 builds/windows/vc2008/freetype.vcproj,
4266 builds/windows/vc2008/index.html,
4267 builds/windows/vc2010/freetype.vcxproj,
4268 builds/windows/vc2010/index.html,
4269 builds/windows/visualc/freetype.dsp,
4270 builds/windows/visualc/freetype.vcproj,
4271 builds/windows/visualc/index.html,
4272 builds/windows/visualce/freetype.dsp,
4273 builds/windows/visualce/freetype.vcproj,
4274 builds/windows/visualce/index.html,
4275 builds/wince/vc2005-ce/freetype.vcproj,
4276 builds/wince/vc2005-ce/index.html,
4277 builds/wince/vc2008-ce/freetype.vcproj,
4278 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
4279
4280 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
4281
4282 * builds/unix/configure.raw (version_info): Set to 17:0:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01004283 * CMakeLists.txt (VERSION_PATCH): Set to 1.
Werner Lemberg3aee4292013-11-25 00:28:11 +01004284 * docs/CHANGES, docs/release: Updated.
4285
Werner Lemberg9326caf2013-11-23 23:59:25 +010042862013-11-23 Werner Lemberg <wl@gnu.org>
4287
Werner Lemberg063ee6b2013-11-24 00:19:17 +01004288 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
4289
4290 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
4291 TRICK_NAMES_COUNT): Updated.
4292 (trick_names): Add family name for the two fonts.
4293
42942013-11-23 Werner Lemberg <wl@gnu.org>
4295
Werner Lemberg9326caf2013-11-23 23:59:25 +01004296 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
4297
Werner Lemberg427b1762013-11-21 13:10:56 +010042982013-11-21 Werner Lemberg <wl@gnu.org>
4299
Werner Lemberg9326caf2013-11-23 23:59:25 +01004300 [sfnt] Typo.
Werner Lemberg8af2a1c2013-11-21 13:13:12 +01004301
4302 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
4303
4304 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
4305 value if the font lacks an `OS/2' table.
4306
43072013-11-21 Werner Lemberg <wl@gnu.org>
4308
Werner Lemberg64b395c2013-12-04 06:18:56 +01004309 [sfnt] Improve handling of buggy embedded bitmap strikes.
Werner Lemberg427b1762013-11-21 13:10:56 +01004310
4311 We are now able to successfully load `AppleMyoungJo.ttf'.
4312 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
4313
4314 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
4315 format.
4316
Werner Lemberg28626862013-11-20 21:06:18 +010043172013-11-20 Werner Lemberg <wl@gnu.org>
4318
4319 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
4320
4321 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
4322
4323 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
4324
4325 for details.
4326
4327 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
4328 tables also for setting `autohint'.
4329
4330 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
4331 `TT_Process_Composite_Glyph' for handling unreliable values of
4332 `maxSizeOfInstructions'.
4333
Werner Lembergbc25de62013-11-16 07:52:20 +010043342013-11-16 Werner Lemberg <wl@gnu.org>
4335
4336 [sfnt] Fix `OS/2' table version 5 support.
4337
4338 We now follow the `official' announcement from Microsoft (on the
4339 OpenType mailing list, which unfortunately hasn't a public archive).
4340
4341 * include/freetype/tttables.h (TT_OS2):
4342 s/usLowerPointSize/usLowerOpticalPointSize/,
4343 s/usUpperPointSize/usUpperOpticalPointSize/.
4344
4345 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
4346 default values.
4347
Werner Lembergfae38202013-11-13 08:55:46 +010043482013-11-13 Werner Lemberg <wl@gnu.org>
4349
Werner Lembergc52b1292013-11-13 10:06:00 +01004350 * builds/unix/ft2unix.h: Remove. No longer necessary.
4351
4352 * builds/unix/install.mk (install): Updated.
4353
43542013-11-13 Werner Lemberg <wl@gnu.org>
4355
Werner Lembergfae38202013-11-13 08:55:46 +01004356 Simplify header file hierarchy.
4357
4358 This large patch changes the header file directory layout from
4359 `include/freetype/...' to `include/...', effectively removing one
4360 level. Since the file `ft2build.h' is also located in `include'
4361 (and it stays there even after installation), all FreeType header
4362 files are now in a single directory.
4363
4364 Applications that use (a) `freetype-config' or FreeType's
4365 `pkg-config' file to get the include directory for the compiler, and
4366 (b) the documented way for header inclusion like
4367
4368 #include <ft2build.h>
4369 #include FT_FREETYPE_H
4370 ...
4371
4372 don't need any change to the source code.
4373
4374 * include/freetype/*: Move up to...
4375 * include/*: ... this directory.
4376
4377 * builds/amiga/include/freetype/*: Move up to...
4378 * builds/amiga/include/*: ... this directory.
4379
4380 */*: Essentially do `s@/freetype/@/@' where appropriate.
4381
4382 * CMakeList.txt: Simplify.
4383 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
4384 `--cflags', return a single directory.
4385 * builds/unix/install.mk (install): No longer try to remove `cache'
4386 and `internal' subdirectories; instead, remove the `freetype'
4387 subdirectory.
4388
Werner Lembergea5c7812013-11-12 08:55:26 +010043892013-11-12 Werner Lemberg <wl@gnu.org>
4390
4391 [truetype] Fix last `truetype' commit.
4392
4393 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
4394 Return error value.
4395 (load_truetype_glyph): Updated.
4396
Werner Lemberg78333282013-11-10 06:26:52 +010043972013-11-10 Werner Lemberg <wl@gnu.org>
4398
4399 * docs/CMAKE: New dummy file.
4400
Dave Arnolddd213012013-11-08 10:52:51 +010044012013-11-08 Dave Arnold <darnold@adobe.com>
4402
4403 [cff] Fix for hints that touch.
4404
4405 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
4406 finding index value of insertion point.
4407
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +010044082013-11-06 Werner Lemberg <wl@gnu.org>
4409
Werner Lemberg5e225b72013-11-06 08:41:59 +01004410 [truetype] Fix handling of phantom points in composite glyphs.
4411 Problem reported by Nigel Tao <nigeltao@golang.org>.
4412
4413 This is a follow-up commit to the previous one.
4414
4415 * src/truetype/ttgload.c (load_truetype_glyph): Call
4416 `tt_get_metrics' after loading the glyph header.
4417
44182013-11-06 Werner Lemberg <wl@gnu.org>
4419
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +01004420 [truetype] Improve emulation of vertical metrics.
4421
4422 This commit also improves the start values of vertical phantom
4423 points. Kudos to Greg Hitchcock for help.
4424
4425 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
4426 `yMax' value. Replace code with fixed Microsoft definition.
4427 (tt_get_metrics): Updated.
4428 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
4429 points, taken from both the OpenType specification and private
4430 communication with Greg (which will eventually be added to the
4431 standard).
4432 Fix horizontal position of `pp3' and `pp4'.
4433
4434 * src/truetype/ttgload.h: Updated.
4435
4436 * src/truetype/ttdriver.c (tt_get_advances): Updated.
4437
4438 * docs/CHANGES: Updated.
4439
Werner Lembergc6064282013-11-05 13:29:15 +010044402013-11-05 Werner Lemberg <wl@gnu.org>
4441
Werner Lemberg50740532013-11-05 23:19:18 +01004442 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
4443 PlatformToolSet version 110 is for VC2012.
4444
4445 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
4446
44472013-11-05 Werner Lemberg <wl@gnu.org>
4448
Werner Lembergc6064282013-11-05 13:29:15 +01004449 [truetype] Correctly reset point tags for glyph components.
4450 Problem reported by Nigel Tao <nigeltao@golang.org>.
4451
4452 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
4453
Werner Lemberg35b08182013-11-02 08:28:41 +010044542013-11-02 Werner Lemberg <wl@gnu.org>
4455
Werner Lemberg7d449432013-11-02 11:36:37 +01004456 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
4457
4458 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
4459 get info on subpixel hinting.
4460
4461 * docs/CHANGES: Updated.
4462
44632013-11-02 Werner Lemberg <wl@gnu.org>
4464
Werner Lemberg35b08182013-11-02 08:28:41 +01004465 Fix Savannah bug #40451.
4466
4467 Simply apply the patch from the bug report.
4468
4469 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
4470 include/freetype/config/ftconfig.h: The used #pragma directives only
4471 work with gcc versions 4.6 and higher.
4472
Werner Lembergebf52d62013-11-01 13:26:28 +010044732013-11-01 Werner Lemberg <wl@gnu.org>
4474
Werner Lembergafa0d592013-11-01 22:27:27 +01004475 * docs/CHANGES: Updated.
4476
44772013-11-01 Werner Lemberg <wl@gnu.org>
4478
Werner Lembergebf52d62013-11-01 13:26:28 +01004479 [truetype] Minor code refactoring.
4480
4481 Two benefits: The allocated FDEF (and IDEF) array gets slightly
4482 smaller, and the `ttdebug' demo program has access to function
4483 numbers without additional costs.
4484
4485 Fortunately, no changes to FontForge are necessary – this is the
4486 only external TrueType debugger I know of, but others may exist and
4487 should check the code accordingly.
4488
4489 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
4490 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
4491 structure.
4492
4493 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
4494 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
4495 Updated.
4496
Werner Lembergee510512013-10-27 07:25:35 +010044972013-10-27 Werner Lemberg <wl@gnu.org>
4498
4499 [sfnt] Implement support for `OS/2' table version 5.
4500
4501 See
4502
4503 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
4504
4505 for the announcement.
4506
4507 * include/freetype/tttables.h (TT_OS2): Add fields
4508 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
4509 this structure only as a pointer through `FT_Get_Sfnt_Table', there
4510 shouldn't be any ABI problems.
4511
4512 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
4513
4514 * docs/CHANGES: Updated.
4515
Werner Lemberg994a8592013-10-24 08:50:34 +020045162013-10-24 Werner Lemberg <wl@gnu.org>
4517
4518 * README.git, docs/CHANGES, docs/INSTALL: Updated.
4519
John Carya0e4a732013-10-24 08:49:08 +020045202013-10-24 John Cary <cary@txcorp.com>
4521
4522 Provide cmake support.
4523
4524 * CMakeLists.txt: New file.
4525
Kenneth Miller4d87ac82013-10-23 20:10:56 +020045262013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
4527 Werner Lemberg <wl@gnu.org>
4528
4529 Provide support for x64 builds in Visual C++ project files.
4530
4531 * src/builds/win32: Renamed to...
4532 * src/builds/windows: This.
4533
4534 * src/builds/windows/vc2010/*: Updated to handle x64 target.
4535
4536 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
4537 appropriate.
4538
Werner Lemberg604838d2013-10-22 01:10:10 +020045392013-10-22 Werner Lemberg <wl@gnu.org>
4540
4541 * src/base/md5.c, src/base/md5.h: Updated to recent version.
4542
4543 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
4544
Werner Lembergdb9159c2013-10-22 10:27:50 +02004545 The canonical URL to get updates for this file is
4546
4547 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
4548
4549 as the author told me in private communication.
4550
Werner Lemberg34efe052013-10-19 21:14:40 +020045512013-10-19 Werner Lemberg <wl@gnu.org>
4552
Werner Lemberg75efc2d2013-10-19 21:46:03 +02004553 [autofit] s/SMALL_TOP/X_HEIGHT/.
4554
4555 * src/autofit/afblue.dat: Updated.
4556
4557 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4558
4559 * src/autofit/aflatin.c, src/autofit/aflatin.h,
4560 src/autofit/atlatin2.c: Updated.
4561
45622013-10-19 Werner Lemberg <wl@gnu.org>
4563
Werner Lemberg34efe052013-10-19 21:14:40 +02004564 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
4565
4566 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4567
Werner Lemberg955f6a82013-10-16 19:47:57 +020045682013-10-16 Werner Lemberg <wl@gnu.org>
4569
Werner Lemberga5f22a92013-10-17 11:08:25 +02004570 [autofit] Add description strings to script entries.
4571
4572 Currently, this is unused.
4573
4574 * src/autofit/afscript.h: Do it.
4575 * src/autofit/afglobal.c, src/autofit/afpic.c,
4576 src/autofit/aftypes.h: Updated.
4577
45782013-10-16 Werner Lemberg <wl@gnu.org>
4579
Werner Lemberg955f6a82013-10-16 19:47:57 +02004580 [autofit] Improve tracing message for extra light flag.
4581
4582 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
4583
Chongyu Zhu41632b52013-10-15 11:40:34 +020045842013-10-15 Chongyu Zhu <lembacon@gmail.com>
4585
4586 [arm] Fix thumb2 inline assembly under LLVM.
4587
4588 When using `ADD' with an immediate operand, the instruction is
4589 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
4590 immediate operand cannot exceed 4095. It will fail to compile with
4591 LLVM.
4592
4593 However, in GCC, due to some legacy compatibility considerations,
4594 `ADD.W' will be automatically emitted when the immediate operand is
4595 larger than 4095.
4596
4597 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4598 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
4599
4600 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
4601
Werner Lembergb6695242013-10-12 10:33:04 +020046022013-10-12 Werner Lemberg <wl@gnu.org>
4603
4604 [autofit] Improve tracing of `latin' hinter.
4605
4606 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
4607 zone types.
4608 (af_latin_metrics_scale_dim): Report scaling changes due to x height
4609 alignment.
4610 Report scaled stroke width and blue zone values.
4611
Dave Arnolde845a852013-10-03 23:04:29 +020046122013-10-03 Dave Arnold <darnold@adobe.com>
4613
4614 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
4615
Werner Lemberg2c56f2a2013-10-07 22:01:00 +02004616 Note that the old code avoided using a region of the piecewise
4617 linear function where the slope was zero. The recovery was to use a
4618 different section of the function, which produced a different,
4619 incorrect amount of darkening.
4620
Darrell Bellert01af71d2013-10-02 22:04:07 +020046212013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
4622
4623 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
4624
Dave Arnold0b330452013-10-02 11:04:06 +020046252013-10-02 Dave Arnold <darnold@adobe.com>
4626
4627 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
4628
4629 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
4630 is to use a previous darkening amount when producing an unhinted,
4631 unscaled outline. This can cause autohint samples in ftgrid and
4632 ftview to be based on darkened CFF outlines instead of unhinted,
4633 undarkened ones.
4634
Dave Arnold3a2cb0f2013-09-29 16:17:02 +020046352013-09-29 Dave Arnold <darnold@adobe.com>
4636
4637 Fix Savannah bug #39295.
4638
4639 The bug was caused by switching to the initial hintmap (the one in
4640 effect when `moveto' executes) just before drawing the final element
4641 in the charstring. This ensured that the path was closed (in both
4642 Character Space and Device Space). But if the final element was a
4643 curve and if the final hintmap was different enough from the initial
4644 one, then the curve was visibly distorted.
4645
4646 The first part of the fix is to draw the final curve using the final
4647 hintmap as specified by the charstring. This corrects the
4648 distortion but does not ensure closing in Device Space. It may
4649 require the rasterizer to automatically generate an extra closing
4650 line. Depending on the hintmap differences, this line could be from
4651 zero to a couple pixels in length.
4652
4653 The second part of the fix covers the case where the charstring
4654 subpath is closed with an explicit line. We now modify that line's
4655 end point to avoid the distortion.
4656
4657 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
4658 the change are:
4659
4660 25ppem S (98)
4661 24ppem eight (52)
4662 25.5ppem p (85)
4663
4664 Curves at the *end* of a subpath are no longer distorted. However,
4665 some of these glyphs have bad hint substitutions in the middle of a
4666 subpath, and these are not affected.
4667
4668 The patch has been tested with a set of 106 fonts that shipped with
4669 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
4670 Google Fonts. There are 1.5 million glyphs, of which some 20k are
4671 changed with the fix. A sampling of a few hundred of these changes
4672 have been examined more closely, and the changes look good (or at
4673 least acceptable).
4674
4675 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
4676 to indicate that we synthesize a closepath line.
4677
4678 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
4679 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
4680 `lineto' operator) and adjust hint zone.
4681 For synthesized closing lines, use end point in first hint zone.
4682 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
4683 particular, shift the detection of zero-length lines from character
4684 space to device space.
4685 (cf2_glyphpath_closeOpenPath): Remove assertion.
4686 Updated.
4687
Werner Lembergb75a8b82013-09-25 09:46:36 +020046882013-09-25 Werner Lemberg <wl@gnu.org>
4689
4690 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
4691
suzuki toshiyaac0f4452013-09-25 10:57:17 +090046922013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4693
4694 [bdf, pcf] Refuse non-zero face_index.
Werner Lemberg964317e2013-09-25 09:22:40 +02004695
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004696 Suggested by Akira Tagoh, see
4697
4698 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
4699
Werner Lemberg964317e2013-09-25 09:22:40 +02004700 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
4701 error if the font could be opened but non-zero `face_index' is
4702 given.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004703 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
4704
4705 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
Werner Lemberg964317e2013-09-25 09:22:40 +02004706 macro for `face_index' because it is validated later.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004707
Werner Lemberg4de77872013-09-23 22:10:08 +020047082013-09-23 Werner Lemberg <wl@gnu.org>
4709
4710 Fix Savannah bug #40090.
4711
4712 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
4713 306f8c5d (from 2013-08-25) affecting this function.
4714
Werner Lemberg5a4c5a52013-09-22 22:37:26 +020047152013-09-22 Werner Lemberg <wl@gnu.org>
4716
4717 [autofit] Disunify Cyrillic and Greek handling from Latin.
4718
4719 * src/autofit/afscript.h: Add Cyrillic and Greek.
4720
4721 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
4722 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
4723 (AF_BLUE_STRINGSET_LATN): Fix typo.
4724 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4725
4726 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
4727 arrays.
4728 (af_grek_script_class, af_cyrl_script_class): New scripts.
4729 * src/autofit/aflatin.h: Updated.
4730
Werner Lemberg2cca9662013-09-20 07:23:34 +020047312013-09-20 Werner Lemberg <wl@gnu.org>
4732
4733 * docs/CHANGES: Updated.
4734
Behdad Esfahbod31e726d2013-09-20 07:20:53 +020047352013-09-20 Behdad Esfahbod <behdad@behdad.org>
4736
4737 Fix vertical size of emboldened glyphs.
4738
4739 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
4740
4741 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
4742 also.
4743
Alexei Podtelezhnikov52381c12013-09-11 23:25:56 -040047442013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
4745
4746 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
4747 algorithm description.
4748
Werner Lemberg3f542492013-09-11 23:08:31 +020047492013-09-11 Werner Lemberg <wl@gnu.org>
4750
4751 [autofit] Improve Hebrew rendering.
4752
4753 This change introduces a new blue zone property
4754 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
4755 top segments.
4756
4757 * src/autofit/afblue.dat: Fix Hebrew blue strings.
4758 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
4759
4760 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
4761
4762 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
4763
4764 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
4765 `AF_LATIN_IS_LONG_BLUE'.
4766
4767 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
4768
Werner Lemberg85a7fdf2013-08-29 21:03:05 +020047692013-08-28 Behdad Esfahbod <behdad@google.com>
4770
4771 [sfnt] Fix frame access while reading WOFF table directory.
4772
4773 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
4774 while reading the directory entries for the whole loop.
4775
47762013-08-29 Werner Lemberg <wl@gnu.org>
Werner Lembergd689d1c2013-08-29 17:53:40 +02004777 Behdad Esfahbod <behdad@google.com>
4778
4779 Implement support for WOFF containers.
4780
4781 We simply synthesize a SFNT from the WOFF, create a memory stream
4782 for the new data, and load the SFNT as usual.
4783
4784 Does NOT add any API to access WOFF metadata or private blocks.
4785
4786 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
4787 WOFF_TableRec): New structures.
4788
4789 * include/freetype/tttags.h (TTAG_wOFF): New macro.
4790
4791 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
4792 `open_face'.
4793
4794 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
4795 `FT_GZIP_H'.
4796 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
4797 writing to a stream.
4798 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
4799 (sfnt_open_font): Handle `TTAG_wOFF'.
4800 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
4801
4802 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
4803 `sfnt->init_face'.
4804
4805 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
4806 argument so that a changed stream survives.
4807 Update callers.
4808
48092013-08-28 Werner Lemberg <wl@gnu.org>
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004810
Werner Lembergdc240522013-08-29 17:53:24 +02004811 [gzip] New function `FT_Gzip_Uncompress'.
4812
4813 This is modeled after zlib's `uncompress' function. We need this
4814 for WOFF support.
4815
4816 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
4817 New function.
4818
4819 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
4820
48212013-08-28 Werner Lemberg <wl@gnu.org>
4822
Werner Lemberg5195ecd2013-08-28 17:41:21 +02004823 [autofit] Fix `make multi' compilation.
4824
4825 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
4826 `afblue.h' but `aftypes.h'.
4827 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
4828
48292013-08-28 Werner Lemberg <wl@gnu.org>
4830
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004831 [autofit] Fix C++ compilation.
4832
4833 * src/autofit/afglobal.c (af_face_globals_get_metrics),
4834 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
4835 (af_deva_script_class): Use proper casts.
4836
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +020048372013-08-27 Behdad Esfahbod <behdad@google.com>
4838
Behdad Esfahbodc799dd62013-08-27 21:46:03 +02004839 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
4840
48412013-08-27 Behdad Esfahbod <behdad@google.com>
4842
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +02004843 FT_Open_Face: Improve external stream handling.
4844
4845 If the font's `clazz->init_face' function wants to swap to new
4846 stream, handling of whether original stream was external could
4847 result to either memory leak or double free. Mark externality into
4848 face flags before calling `init_face' such that the clazz can handle
4849 external streams properly.
4850
4851 * src/base/ftobjs.c (FT_Open_Face): Move code to set
4852 FT_FACE_FLAG_EXTERNAL_STREAM to...
4853 (open_face): This function.
4854
Werner Lemberg5e53db22013-08-27 18:37:39 +020048552013-08-27 Werner Lemberg <wl@gnu.org>
4856
Werner Lembergbcd8c0b2013-08-27 21:36:03 +02004857 Remove `FT_SqrtFixed' function.
4858
4859 It's no longer used.
4860
4861 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
4862
48632013-08-27 Werner Lemberg <wl@gnu.org>
4864
Werner Lemberg5e53db22013-08-27 18:37:39 +02004865 [autofit] While tracing, report script names instead of ID values.
4866
4867 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
4868 New array.
4869 * src/autofit/afglobal.h: Updated.
4870
4871 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
4872 af_cjk_hint_edges): Use `af_script_names'.
4873 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4874 af_latin_hint_edges): Ditto.
4875
Werner Lemberg92f5a042013-08-26 09:22:27 +020048762013-08-26 Werner Lemberg <wl@gnu.org>
4877
Werner Lemberg278f64b2013-08-26 20:20:03 +02004878 [autofit] Report used script while hinting a glyph.
4879
4880 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
4881 (af_latin_hint_edges): Implement it.
4882
48832013-08-26 Werner Lemberg <wl@gnu.org>
4884
Werner Lemberg371f5c32013-08-26 20:11:24 +02004885 [autofit] Add support for Hebrew script.
4886
4887 * src/autofit/afblue.dat: Add blue strings for Hebrew.
4888 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4889
4890 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
4891 (af_hebr_script_class): New script.
4892 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
4893
48942013-08-26 Werner Lemberg <wl@gnu.org>
4895
Werner Lemberg098121d2013-08-26 18:54:05 +02004896 [autofit] Improve tracing messages.
4897
4898 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
4899 ID in tracing message.
4900 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
4901 loop.
4902 Improve tracing messages.
4903 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
4904 `num_actions' to count hinting actions.
4905 Improve tracing messages.
4906
4907 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
4908 script ID in tracing message.
4909 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
4910 messages.
4911
49122013-08-26 Werner Lemberg <wl@gnu.org>
4913
Werner Lembergffee64a2013-08-26 12:55:48 +02004914 Better tracing of loaded glyphs.
4915
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004916 Previously, the loading of a glyph was traced at level 4, if at all.
Werner Lembergffee64a2013-08-26 12:55:48 +02004917 With this change, all font loading routines emit a tracing message
4918 at level 1, making it easier to select tracing output (for example
4919 using F2_DEBUG="any:1 afhints:7 aflatin:7").
4920
4921 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
4922 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
4923 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
4924 messages.
4925 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
4926 message.
4927 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
4928 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
4929 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
4930 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
4931 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
4932 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
4933
49342013-08-26 Werner Lemberg <wl@gnu.org>
4935
Werner Lemberg33655a92013-08-26 09:58:50 +02004936 [autofit] Fix script selection.
4937
4938 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
4939 `AF_SCRIPT_DFLT', not value 0.
4940 Simplify code.
4941
4942 * src/autofit/afscript.h: Sort by script name.
4943
49442013-08-26 Werner Lemberg <wl@gnu.org>
4945
Werner Lemberg92f5a042013-08-26 09:22:27 +02004946 [autofit] Make `dummy' hinter work as expected.
4947
4948 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
4949 information.
4950 (af_dummy_hints_apply): Scale the glyphs.
4951
Werner Lemberg8b8be782013-08-25 08:01:41 +020049522013-08-25 Werner Lemberg <wl@gnu.org>
4953
Werner Lembergc1eb4452013-08-25 19:47:26 +02004954 [autofit] Make `cjk' module use blue stringsets.
4955
4956 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
4957 (af_cjk_hani_blue_chars): Removed.
4958 (AF_CJK_BLUE_TYPE_*): Removed.
4959 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
4960 AF_BLUE_STRING_MAX_LEN.
4961 Change loops to use offsets (in file `afblue.h') into the new arrays
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004962 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
Werner Lembergc1eb4452013-08-25 19:47:26 +02004963 Instead of three dimensions (as used in the old blue string array)
4964 we now use properties to do the same, saving one loop nesting level.
4965
4966 * src/autofit/afcjk.h: Remove old enumeration values superseded by
4967 the new data in `afblue.h'.
4968 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
4969 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
4970 `af_cjk_metrics_init_blues'.
4971 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
4972 (AF_CJK_BLUE_IS_TOP): Renamed to...
4973 (AF_CJK_BLUE_TOP): This.
4974 (AF_CJK_MAX_BLUES): Remove.
4975 (AF_CJKAxisRec): Updated.
4976
49772013-08-25 Werner Lemberg <wl@gnu.org>
4978
Werner Lemberg5c4a23a2013-08-25 19:29:07 +02004979 [autofit] Typo.
4980
4981 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
4982 cast.
4983
49842013-08-25 Werner Lemberg <wl@gnu.org>
4985
Werner Lemberg306f8c52013-08-25 13:07:08 +02004986 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
4987
4988 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
4989 messages.
4990 (af_cjk_metrics_init_blues): Don't pass blue string array as
4991 argument but use the global array directly.
4992 Use `outline' directly.
4993 Update and add tracing messages.
4994 (af_cjk_metrics_init): Simplify code.
4995 (af_cjk_metrics_scale_dim): Improve tracing message.
4996 (af_cjk_metrics_scale): Synchronize.
4997
4998 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4999 af_latin_metrics_init_blues): Improve and add tracing messages.
5000
50012013-08-25 Werner Lemberg <wl@gnu.org>
5002
Werner Lemberg0975d682013-08-25 08:37:47 +02005003 [autofit] Make `latin' module use blue stringsets.
5004
5005 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
5006 (af_latin_blue_chars): Removed.
5007 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
5008 with AF_BLUE_STRING_MAX_LEN.
5009 Change loops to use offsets (in file `afblue.h') into the new arrays
5010 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
5011 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
5012
5013 * src/autofit/aflatin.h: Remove old enumeration values superseded by
5014 the new data in `afblue.h'.
5015 (AF_LATIN_IS_TOP_BLUE): Updated definition.
5016 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
5017 (AF_LATIN_MAX_BLUES): Remove.
5018 (AF_LatinAxisRec): Updated.
5019
50202013-08-25 Werner Lemberg <wl@gnu.org>
5021
Werner Lembergdb3e5b92013-08-25 08:23:22 +02005022 [autofit] Add blue stringsets.
5023
5024 * src/autofit/aftypes.h: Include `afblue.h'.
5025 (AF_ScriptClassRec): Add `blue_stringset' field.
5026 (AF_DEFINE_SCRIPT_CLASS): Updated.
5027
5028 * src/autofit/autofit.c: Include `afblue.c'.
5029
5030 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
5031 (af_dflt_script_class), src/autofit/afindic.c
5032 (af_deva_script_class), src/autofit/aflatin.c
5033 (af_latn_script_class), src/autofit/aflatin2.c
5034 (af_ltn2_script_class): Updated.
5035
5036 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
5037
50382013-08-25 Werner Lemberg <wl@gnu.org>
5039
Werner Lemberg8b8be782013-08-25 08:01:41 +02005040 [autofit] Introduce data file for blue strings.
5041
5042 The idea is to have a central file which gets processed by a Perl
5043 script to create proper `.c' and `.h' files using templates. There
5044 are two other reasons to do that:
5045
5046 . The data file should be easily readable. We use UTF-8 encoding
5047 which then gets converted to single bytes.
5048
5049 . Since the number of supported scripts will increase soon, the
5050 current usage of blue string arrays is a waste of space. Using
5051 the Perl script it is possible to imitate jagged arrays,
5052 defining enumeration constants as offsets into the arrays.
5053
5054 This commit only adds files without changing any functionality.
5055
5056 * src/autofit/afblue.dat: New data file.
5057 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
5058
5059 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
5060 for...
5061 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
5062 To avoid a dependency on Perl, we add them too.
5063
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -040050642013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
5065
Werner Lemberg71c0ad62013-08-27 21:30:09 +02005066 [base] Enable new algorithm for `BBox_Cubic_Check'.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04005067
Werner Lemberg71c0ad62013-08-27 21:30:09 +02005068 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
5069 the old one.
5070 Improve comments.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04005071
Werner Lemberg6bfa2632013-08-18 18:34:05 +020050722013-08-18 Werner Lemberg <wl@gnu.org>
5073
Werner Lemberg4af44442013-08-18 18:46:30 +02005074 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
5075
50762013-08-18 Werner Lemberg <wl@gnu.org>
5077
Werner Lemberg6bfa2632013-08-18 18:34:05 +02005078 Fix Savannah bug #39804.
5079
5080 * builds/unix/configure.raw (LIBPNG): Define and export.
5081 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
5082 libpng.
5083
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -040050842013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
5085
5086 [base] Clean up BBox_Conic_Check.
5087
5088 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
5089 extremum at the segment ends, which are already within the bbox.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005090 Slightly modify calculations.
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -04005091
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -040050922013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
5093
5094 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
5095
5096 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005097 accuracy and avoid overflows.
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04005098
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -040050992013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
5100
5101 [base] Refactor experimental (disabled) BBox_Cubic_Check.
5102
5103 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04005104 as the mirror image of the maximum search implemented here...
5105 (update_max): New function.
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -04005106
John Tytgat9bcfab82013-08-06 08:55:19 +020051072013-08-06 John Tytgat <John.Tytgat@esko.com>
5108
5109 Fix Savannah bug #39702.
5110
5111 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
5112 != 0'; this stronger test is mandated by the CFF specification.
5113 Fix test for INDEX structures which have one or more empty entries
5114 at the end.
5115
Werner Lembergcc25e3a2013-08-05 08:46:15 +020051162013-08-05 Werner Lemberg <wl@gnu.org>
5117
Werner Lemberga32682f2013-08-06 00:21:46 +02005118 Fix gcc pragmas, part 2.
5119
5120 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
5121 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
5122 introduced with gcc version 4.6.
5123
51242013-08-05 Werner Lemberg <wl@gnu.org>
5125
Werner Lemberg69e524d2013-08-05 23:38:32 +02005126 Fix gcc pragmas.
5127
5128 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
5129 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
5130 pragmas within a function body.
5131
51322013-08-05 Werner Lemberg <wl@gnu.org>
5133
Werner Lemberg9e6de362013-08-05 16:37:21 +02005134 Fix Savannah bug #39700.
5135
5136 * builds/unix/ftconfig.h: Synchronize with
5137 `include/freetype/config/ftconfig.h'.
5138
5139 * builds/vms/ftconfig.h: Ditto.
5140 Make the differences to the master `ftconfig.h' file as small as
5141 possible for easier maintainance.
5142
51432013-08-05 Werner Lemberg <wl@gnu.org>
5144
Werner Lembergcc25e3a2013-08-05 08:46:15 +02005145 [autofit] Improve handling of `near' points.
5146
5147 Points which are very near to each other are now marked as such.
5148 The `weak' flag is then computed by using the `in' vector of the
5149 first and the `out' vector of the last point of a group of near
5150 points.
5151
5152 For example, this fixes the rendering of glyph `Oslash' in
5153 `Roboto-Thin.ttf'.
5154
5155 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
5156
5157 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
5158 the heuristic value `near_limit' to decide whether the current point
5159 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
5160 Store good `in' vector (of last non-near point) in
5161 `last_good_in_{x,y}' and use it as an argument to
5162 `ft_corner_is_flat' if necessary.
5163
Werner Lemberg74a9b672013-08-02 14:53:32 +020051642013-08-02 Werner Lemberg <wl@gnu.org>
5165
Werner Lemberg0d28a7d2013-08-02 22:59:43 +02005166 * include/freetype/ftcffdrv.h: Improve documentation.
5167 This is based on blog entries from David Lemon and Dave Arnold (both
5168 from Adobe) with kind permission. Dave also helped in
5169 proof-reading.
5170
51712013-08-02 Werner Lemberg <wl@gnu.org>
5172
Werner Lemberg456cc442013-08-02 20:25:21 +02005173 [autofit] Move declaration of scripts into separate file.
5174
5175 This has the benefit that we don't need to duplicate the data at
5176 different places.
5177
5178 * src/autofit/afscript.h: New file.
5179
5180 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
5181 the enumeration values.
5182
5183 * src/autofit/afglobal.c: Include `afscript.h' to get the script
5184 specific header files.
5185 (af_script_classes): Include `afscript.h' to fill this array.
5186
5187 * src/autofit/afpic.c: Include `afscript.h' to get the script
5188 specific header files.
5189 (autofit_module_class_pic_init): Include `afscript.h' for
5190 initialization.
5191 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
5192 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
5193
5194 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
5195
51962013-08-02 Werner Lemberg <wl@gnu.org>
5197
Werner Lemberg773601d2013-08-02 19:51:17 +02005198 [autofit] Move declaration of writing systems into separate file.
5199
5200 This has the benefit that we don't need to duplicate the data at
5201 different places.
5202
5203 * src/autofit/afwrtsys.h: New file.
5204
5205 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
5206 define the enumeration values.
5207
5208 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
5209 system specific header files.
5210 Include `afpic.h'.
5211 (af_writing_system_classes): Include `afwrtsys.h' to fill this
5212 array.
5213
5214 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
5215 system specific header files.
5216 (autofit_module_class_pic_init): Include `afwrtsys.h' for
5217 initialization.
5218 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
5219 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
5220 `AF_WRITING_SYSTEM_MAX' instead.
5221
52222013-08-02 Werner Lemberg <wl@gnu.org>
5223
Werner Lemberg74a9b672013-08-02 14:53:32 +02005224 [sfnt] Fix compilation with g++.
5225
5226 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
5227 cast.
5228 (Load_SBit_Png): Pacify compiler.
5229
Werner Lemberg89a529f2013-08-02 14:50:23 +020052302013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5231 Werner Lemberg <wl@gnu.org>
5232
5233 [autofit] Fix `make multi'.
5234
5235 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
5236 FT_LOCAL_ARRAY_DEF): New macros.
5237
5238 * src/autofit/afglobal.c (af_writing_system_classes,
5239 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
5240 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
5241 `af_script_classes'.
5242 * src/autofit/afloader.c: Include `afpic.h'.
5243
Werner Lemberge8ed2d62013-08-01 12:20:20 +020052442013-08-01 Werner Lemberg <wl@gnu.org>
5245
5246 Another round of cppcheck nitpicks.
5247
5248 The call was (from the top-level of the FreeType tree):
5249
5250 cppcheck --force \
5251 --enable=all \
5252 -I /usr/include \
5253 -I /usr/local/include \
5254 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
5255 -I include \
5256 -I include/freetype \
5257 -I include/freetype/config \
5258 -I include/freetype/internal \
5259 -DFT2_BUILD_LIBRARY \
5260 . &> cppcheck.log
5261
5262 using cppcheck git commit f7e93f99.
5263
5264 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
5265 macro).
5266
5267 */* Improve variable scopes.
5268 */* Remove redundant initializations which get overwritten.
5269
5270 * src/gxvalid/*: Comment out redundant code or guard it with
5271 FT_DEBUG_LEVEL_TRACE.
5272
Werner Lemberg5d6a3602013-07-30 23:17:04 +020052732013-07-30 Werner Lemberg <wl@gnu.org>
5274
Werner Lemberg72f5ff52013-07-31 22:49:29 +02005275 [autofit] Introduce `writing systems'.
5276
5277 This patch adds a new top level to the auto-hinter's script class
5278 hierarchy. It defines `writing systems' which can contain multiple
5279 scripts.
5280
5281 For example, the `latin' writing system (in file `aflatin.c') is
5282 able to support scripts like Latin, Cyrillic, Armenian, etc., which
5283 can be handled similarly.
5284
5285 Scripts are now named using four-letter OpenType tags.
5286
5287 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
5288 to...
5289 (AF_WritingSystemClassRec): This new structure. It holds pointers
5290 to functions which can be shared among related scripts.
5291 (AF_WritingSystem): New enumeration.
5292 (AF_Script): Revised values using four-letter tags.
5293 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
5294 (AF_DEFINE_SCRIPT_CLASS): Updated.
5295
5296 * src/autofit/afglobal.c (af_writing_system_classes): New global,
5297 constant array.
5298 (af_script_classes): Updated.
5299 (af_face_globals_free): Updated.
5300 Remove assertion.
5301 (af_face_globals_get_metrics): Updated.
5302
5303 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
5304 [!AF_CONFIG_OPTION_CJK]: Handle this case.
5305
5306 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
5307 Updated.
5308
5309 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
5310 initialize structures for both writing systems and scripts.
5311 * src/autofit/afpic.h: Updated.
5312 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
5313
5314 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
5315 system.
5316 (af_cjk_uniranges): Renamed to...
5317 (af_hani_uniranges): This.
5318 (af_cjk_script_class): Reduced and renamed to...
5319 (af_hani_script_class): This.
5320 * src/autofit/afcjk.h: Updated.
5321
5322 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
5323 system.
5324 (af_dummy_script_class): Reduced and renamed to...
5325 (af_dflt_script_class): This.
5326 * src/autofit/afdummy.h: Updated.
5327
5328 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
5329 system.
5330 (af_indic_uniranges): Renamed to...
5331 (af_deva_uniranges): This.
5332 (af_indic_script_class): Reduced and renamed to...
5333 (af_deva_script_class): This.
5334 * src/autofit/afcjk.h: Updated.
5335
5336 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
5337 system.
5338 (af_latin_uniranges): Renamed to...
5339 (af_latn_uniranges): This.
5340 (af_latin_script_class): Reduced and renamed to...
5341 (af_latn_script_class): This.
5342 * src/autofit/aflatin.h: Updated.
5343
5344 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
5345 writing system.
5346 (af_latin2_uniranges): Renamed to...
5347 (af_ltn2_uniranges): This.
5348 Synchronize ranges with `latin'.
5349 (af_latin2_script_class): Reduced and renamed to...
5350 (af_ltn2_script_class): This.
5351 * src/autofit/aflatin2.h: Updated.
5352
53532013-07-30 Werner Lemberg <wl@gnu.org>
5354
Werner Lemberg5d6a3602013-07-30 23:17:04 +02005355 [autofit] Variable renaming.
5356
5357 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
5358 s/clazz/script_class/.
5359 Update all users.
5360
suzuki toshiya2b29ed62013-07-30 13:55:29 +090053612013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5362
5363 Ignore libpng-config under cross-building configuration,
5364 because it will return the flags for the hosting environment.
5365
5366 * builds/unix/configure.raw: Ignore libpng-config when
5367 `cross_compiling' == yes.
5368
suzuki toshiyaf2e7f1e2013-07-30 13:32:57 +090053692013-07-30 Behdad Esfahbod <behdad@google.com>
5370
5371 Prevent division by zero by a transparent color.
5372
5373 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
5374 Return 0 immediately, when alpha channel is zero.
5375
Behdad Esfahbod21c32b02013-07-25 21:53:18 +020053762013-07-25 Behdad Esfahbod <behdad@google.com>
5377
5378 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
5379
5380 Also disambiguate Google's color bitmap tables.
5381
5382 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
5383 New macros.
5384
5385 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
5386 TT_SBIT_TABLE_TYPE_CBLC.
5387
5388 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
5389
5390 * src/sfnt/ttsbit.c (tt_face_load_sbit,
5391 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
5392 TT_SBIT_TABLE_TYPE_CBLC.
5393
suzuki toshiyab4725cb2013-07-24 14:25:39 +090053942013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5395
5396 [sfnt] Fix for `make multi' target.
5397
5398 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
5399
Werner Lemberg6a7df622013-07-20 10:48:37 +020054002013-07-20 Werner Lemberg <wl@gnu.org>
5401
5402 * docs/INSTALL.GNU: Updated.
5403
Behdad Esfahbodff269522013-07-20 08:02:39 +020054042013-07-20 Behdad Esfahbod <behdad@google.com>
5405
5406 [sfnt] Fix `sbix' table version handling.
5407
5408 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
5409 USHORT version numbers are to be considered as `minor'.
5410
Werner Lemberg05c14212013-07-19 23:11:23 +020054112013-07-19 Werner Lemberg <wl@gnu.org>
5412
5413 [autofit] Fix segment classification for blue zones.
5414
5415 The old code (essentially unchanged since the very beginning)
5416 incorrectly handled this configuration
5417
5418 x -o- x
5419 / \
5420 / \
5421 / \
5422 o o
5423
5424 as flat and this
5425
5426 o o
5427 / /
5428 x| x|
5429 | |
5430 o---------------o
5431
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005432 as round. (`o' and `x' are on and off points, respectively).
Werner Lemberg05c14212013-07-19 23:11:23 +02005433
5434 This is a major change which should improve the rendering results
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005435 enormously for many TrueType fonts, especially in the range approx.
Werner Lemberg05c14212013-07-19 23:11:23 +02005436 20-40ppem, fixing the appearance of many overshoots.
5437
5438 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
5439 first and last points of the segment, not the points right before
5440 and after.
5441
54422013-07-19 Behdad Esfahbod <behdad@google.com>
Werner Lemberg01705392013-07-18 13:13:12 +02005443
Behdad Esfahbod778a7e62013-07-19 14:28:28 +02005444 [sfnt] `sbix' fix-ups.
5445
5446 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
5447 are rendered scaled and then the `glyf' outline rendered on top. We
5448 don't support that yet, so just ignore the `glyf' outline and
5449 advertise it as a bitmap-only font.
5450
5451 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
5452 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
5453 (tt_face_load_sbix_image): Typo.
5454
54552013-07-18 Behdad Esfahbod <behdad@google.com>
5456
Werner Lemberg01705392013-07-18 13:13:12 +02005457 [sfnt] Add support for Apple's `sbix' color bitmap table.
5458
5459 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
5460 fields to FT_Short and FT_UShort, respectively.
5461 (TT_SBitTableType): New enumeration.
5462 (TT_FaceRec): Add `sbit_table_type' field.
5463
5464 * include/freetype/tttags.h (TTAG_sbix): New macro.
5465
5466 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
5467 FT_GlyphSlot argument instead FT_Bitmap.
5468 Add flag to control map and metrics handling.
5469 Update all users.
5470
5471 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
5472 (tt_face_load_eblc): Renamed to...
5473 (tt_face_load_sbit): This.
5474 Handlic `sbix' bitmaps.
5475 (tt_face_free_eblc): Renamed to...
5476 (tt_face_load_sbit): This.
5477 Updated.
5478 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
5479 (tt_face_load_sbix_image): New function.
5480 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
5481 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5482 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5483 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
5484 and handle load flags.
5485 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
5486 handle formats 17-19.
5487 Move color to grayscale conversion to...
5488 (tt_face_load_sbit_image): Here.
5489 Handle `sbix' bitmaps.
5490
5491 * src/sfnt/pngshim.h: Updated.
5492 * src/sfnt/ttsbit.h: Updated.
5493 * src/sfnt/sfdriver.c: Updated.
5494
Werner Lemberg274207e2013-07-18 12:38:57 +020054952013-07-18 Werner Lemberg <wl@gnu.org>
5496
5497 [sfnt] Ignore invalid magic number in `head' or `bhed'.
5498
5499 Other font engines seem to ignore it also. Problem reported by
5500 Hin-Tak Leung <htl10@users.sourceforge.net>.
5501
5502 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
5503 we have an invalid magic number.
5504
Werner Lemberg9a7951d2013-07-16 15:25:24 +020055052013-07-16 Werner Lemberg <wl@gnu.org>
5506
5507 [smooth] Fix segfault caused by previous commit.
5508
5509 * src/smooth/ftgrays.c (gray_set_cell): Always compute
5510 `ras.invalid'.
5511
David Turnera5f33ee2013-07-16 12:40:03 +020055122013-07-16 David Turner <digit@google.com>
5513
David Turner89929ec2013-07-16 13:36:07 +02005514 [smooth] Improve performance.
5515
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005516 Provide a work-around for an ARM-specific performance bug in GCC.
David Turner89929ec2013-07-16 13:36:07 +02005517 This speeds up the rasterizer by more than 5%.
5518
5519 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
5520 also improves performance on other platforms by a tiny bit (<1%).
5521
5522 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
5523 Use it where appropriate.
5524
5525 (gray_record_cell, gray_set_cell, gray_move_to,
5526 gray_convert_glyph_inner): Streamline condition handling.
5527
55282013-07-16 David Turner <digit@google.com>
5529
David Turnerf66d48e2013-07-16 13:18:00 +02005530 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
5531
5532 This patch provides slightly optimized versions for ARM, x86, and
5533 x86_64 CPUs if built with GCC.
5534
5535 Also remove some dead code.
5536
5537 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
5538 TT_DotFix14_long_long): New functions.
5539
55402013-07-16 David Turner <digit@google.com>
5541
David Turnerb2890882013-07-16 12:52:18 +02005542 Optimize FT_MulFix for x86_64 GCC builds.
5543
5544 This patch provides an optimized `FT_MulFix' implementation for
5545 x86_64 machines when FreeType is built with GCC, or compatible
5546 compilers like Clang.
5547
5548 Example:
5549 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
5550
5551 Before:
5552
5553 Load 4.863 us/op
5554 Load_Advances (Normal) 4.816 us/op
5555 Load_Advances (Fast) 0.028 us/op
5556 Render 2.753 us/op
5557 Get_Glyph 0.463 us/op
5558 Get_CBox 0.077 us/op
5559 Get_Char_Index 0.023 us/op
5560 Iterate CMap 13.898 us/op
5561 New_Face 12.368 us/op
5562 Embolden 0.028 us/op
5563 Get_BBox 0.302 us/op
5564
5565 After:
5566
5567 Load 4.617 us/op
5568 Load_Advances (Normal) 4.645 us/op
5569 Load_Advances (Fast) 0.027 us/op
5570 Render 2.789 us/op
5571 Get_Glyph 0.460 us/op
5572 Get_CBox 0.077 us/op
5573 Get_Char_Index 0.024 us/op
5574 Iterate CMap 13.403 us/op
5575 New_Face 12.278 us/op
5576 Embolden 0.028 us/op
5577 Get_BBox 0.301 us/op
5578
5579 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5580 (FT_MulFix_x86_64): New function.
5581
55822013-07-16 David Turner <digit@google.com>
5583
David Turnera5f33ee2013-07-16 12:40:03 +02005584 Speed up ARMv7 support.
5585
5586 When building for ARMv7 with thumb2 instructions, the optimized
5587 `FT_MulFix_arm' assembly routine was not being used.
5588
5589 The reason for this is in the `ftconfig.h' header, namely:
5590
5591 - The assembly routine uses the `smull' instruction which is not
5592 available when generating Thumb-1 machine code. It is available
5593 in Thumb-2 mode, though.
5594
5595 - The header was written a long time ago before Thumb-2 became
5596 widely popular (e.g. with Android). So it simply doesn't use the
5597 assembly routine if the `__thumb__' built-in macro is defined.
5598
5599 - When compiling in Thumb-2 mode, the compiler will define both
5600 `__thumb__' and `__thumb2__'.
5601
5602 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
5603 assembly routine is only avoided when generating Thumb-1 code.
5604
5605 Given that this is performance-sensitive function, this improves
5606 `ftbench' as follows on a Galaxy Nexus:
5607
5608 Before (us/op) After (us/op)
5609
5610 - loading Arial.ttf glyphs at 14 ppem [1]
5611
5612 Load 34.285 33.098
5613
5614 - same operation with the light auto-hinter [2]
5615
5616 Load 31.317 29.590
5617
5618 - same operation without hinting [3]
5619
5620 Load 6.143 5.376
5621
5622 - loading Arial.ttf advances at 14 ppem [4]
5623
5624 Load_Advances (normal) 34.216 33.016
5625 Load_Advances (fast) 0.176 0.176
5626
5627 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
5628 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
5629 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
5630 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
5631
5632 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5633 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
5634
Werner Lemberge12fc772013-06-28 07:57:32 +020056352013-06-28 Werner Lemberg <wl@gnu.org>
5636
5637 * docs/CHANGES: Updated.
5638
Werner Lemberg680c1d42013-06-27 17:21:59 +020056392013-06-27 Werner Lemberg <wl@gnu.org>
5640
5641 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
5642
Werner Lembergc7cc9eb2013-06-25 07:24:02 +020056432013-06-25 Werner Lemberg <wl@gnu.org>
5644
Werner Lembergb8850fc2013-06-26 12:22:10 +02005645 [cff] Add darkening limit to `darkening-parameters'.
5646
5647 * src/cff/cffdrivr.c (cff_property_set): Add check.
5648
56492013-06-25 Werner Lemberg <wl@gnu.org>
5650
Werner Lemberg89ca1fd2013-06-25 23:28:02 +02005651 [cff] Add `darkening-parameters' property.
5652
5653 * include/freetype/ftcffdrv.h: Document it.
5654
5655 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
5656 `darkening-parameters' property.
5657
5658 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
5659
5660 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
5661 argument and use it.
5662 Update all callers.
5663
5664 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
5665 `darken_params' values.
5666
5667 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
5668
5669 * src/cff/cffobjs.c (cff_driver_init): Set default values for
5670 `darken_params'.
5671
56722013-06-25 Werner Lemberg <wl@gnu.org>
5673
Werner Lembergfad93262013-06-25 10:41:37 +02005674 [docmaker] Code shuffling.
5675
5676 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
5677 * src/tools/docmaker/sources.py: ... to this file.
5678
56792013-06-25 Werner Lemberg <wl@gnu.org>
5680
Werner Lemberg8bdc4072013-06-25 10:20:53 +02005681 [docmaker] Remove unused functions.
5682
5683 * src/tools/docmaker/content.py (DocMarkup.get_start,
5684 DocBlock.get_markup_name): Removed.
5685 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
5686 HtmlFormatter.make_html_words): Removed.
5687
56882013-06-25 Werner Lemberg <wl@gnu.org>
5689
Werner Lembergffb8b472013-06-25 09:09:30 +02005690 * builds/freetype.mk (dll): Remove target.
5691
5692 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
5693
56942013-06-25 Werner Lemberg <wl@gnu.org>
5695
Werner Lembergc7cc9eb2013-06-25 07:24:02 +02005696 [docmaker] Recognise URLs.
5697
5698 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
5699 (make_html_para): Use it.
5700
Werner Lemberg25b7da52013-06-19 10:23:36 +020057012013-06-19 Werner Lemberg <wl@gnu.org>
5702
Werner Lembergfe4f5712013-06-19 23:27:47 +02005703 * Version 2.5.0.1 released.
5704 ===========================
5705
5706
5707 Tag sources with `VER-2-5-0-1'.
5708
5709 * include/freetype/config/ftoption.h: Undefine
5710 CFF_CONFIG_OPTION_OLD_ENGINE.
5711 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
5712
57132013-06-19 Werner Lemberg <wl@gnu.org>
5714
Werner Lemberg609f0ca2013-06-19 14:41:47 +02005715 * builds/unix/install.mk (install): Don't create `cache' directory.
5716
5717 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
5718
57192013-06-19 Werner Lemberg <wl@gnu.org>
5720
Werner Lemberg25b7da52013-06-19 10:23:36 +02005721 * Version 2.5.0 released.
5722 =========================
5723
5724
5725 Tag sources with `VER-2-5-0'.
5726
5727 * docs/VERSION.DLL: Update documentation and bump version number to
5728 2.5.0.
5729
5730 * README, Jamfile (RefDoc),
5731 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
5732 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
5733 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
5734 builds/win32/visualc/freetype.dsp,
5735 builds/win32/visualc/freetype.vcproj,
5736 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
5737 builds/win32/visualce/freetype.vcproj,
5738 builds/win32/visualce/index.html,
5739 builds/wince/vc2005-ce/freetype.vcproj,
5740 builds/wince/vc2005-ce/index.html,
5741 builds/wince/vc2008-ce/freetype.vcproj,
5742 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
5743
5744 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
5745 (FREETYPE_PATCH): Set to 0.
5746
5747 * builds/unix/configure.raw (version_info): Set to 16:2:10.
5748
5749 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
5750 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
5751
Werner Lembergf56691a2013-06-18 10:17:48 +020057522013-06-18 Werner Lemberg <wl@gnu.org>
5753
5754 Fix Savannah bug #39269.
5755
5756 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
5757 case of reacollocation failures.
5758
Andrew Church67cf7a82013-06-18 09:35:34 +020057592013-06-18 Andrew Church <achurch+savannah@achurch.org>
5760
5761 Fix Savannah bug #39266.
5762
5763 If memory allocations fail at certain points while opening a font,
5764 FreeType can either crash due to a NULL dereference or leak memory.
5765
5766 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
5767 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
5768 FT_Open_Face() fails in a memory allocation before the face's
5769 reference count is set to 1, a subsequent `FT_Done_Library' call
5770 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
5771 the face.
5772
5773 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
5774 earlier.
5775 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
5776 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
5777
57782013-06-14 Werner Lemberg <wl@gnu.org>
Werner Lembergd7e34442013-06-14 18:33:39 +02005779
5780 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
5781
Dave Arnoldcb23a622013-06-13 07:46:32 +020057822013-06-06 Dave Arnold <darnold@adobe.com>
5783 Werner Lemberg <wl@gnu.org>
5784
5785 [cff] Add code to Adobe's engine to handle ppem > 2000.
5786
5787 * src/cff/cffgload.c (cff_slot_load): If we get
5788 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
5789
Andrew Church67cf7a82013-06-18 09:35:34 +020057902013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg25b6e602013-06-12 11:06:34 +02005791
Werner Lemberg294ce112013-06-12 23:33:11 +02005792 Another try on pragmas.
5793
5794 * include/freetype/internal/ftdebug.h: Move pragmas to...
5795 * include/freetype/internal/internal.h: ... this file since it gets
5796 included by all source files.
5797 * include/freetype/internal/ftserv.h: Remove pragma which has no
5798 effect.
5799
Dave Arnoldcb23a622013-06-13 07:46:32 +020058002013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg294ce112013-06-12 23:33:11 +02005801
Werner Lemberg25b6e602013-06-12 11:06:34 +02005802 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
5803
5804 This partially undoes commit 3f6e0e0c.
5805
Werner Lembergc06889e2013-06-12 10:58:06 +020058062013-06-12 Werner Lemberg <wl@gnu.org>
5807
5808 More compiler warning fixes.
5809
5810 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
5811
Werner Lemberg99e60d82013-06-10 01:44:37 +020058122013-06-10 Werner Lemberg <wl@gnu.org>
5813
Werner Lemberg5e094c62013-06-10 14:59:21 +02005814 [truetype] Improve handling of broken sbit advance widths.
5815
5816 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
5817 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
5818
5819 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
5820
58212013-06-10 Werner Lemberg <wl@gnu.org>
5822
Werner Lemberga25ecfd2013-06-10 12:57:16 +02005823 [sfnt] Improve embedded bitmap tracing.
5824
5825 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
5826 bitmap strike match to...
5827 (FT_Match_Size): This function.
5828
5829 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
5830 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5831 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5832 tt_sbit_decoder_load_image): Decorate with tracing messages.
5833
58342013-06-10 Werner Lemberg <wl@gnu.org>
5835
Werner Lemberg99e60d82013-06-10 01:44:37 +02005836 Fix Savannah bug #39160.
5837
5838 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
5839 for the degenerate case.
5840
Werner Lemberg2ba871b2013-06-09 08:20:54 +020058412013-06-09 David Turner <digit@google.com>
5842
5843 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
5844
5845 This code, present since eight(!) years in the unused `CACHE'
5846 branch, has been forgotten to apply to the master branch. It's
5847 really amazing that noone has ever complained since
5848 `FTC_Manager_Reset' is pretty useless without flushing the cache.
5849
Werner Lemberg85fd84b2013-06-07 17:10:21 +020058502013-06-07 Werner Lemberg <wl@gnu.org>
5851
Werner Lemberg3f6e0e02013-06-07 18:10:40 +02005852 Add and improve pragmas for MSVC compiler.
5853
5854 * include/freetype/internal/ftdebug.h: Remove pragmas.
5855 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
5856 * include/freetype/internal/ftvalid.h: Handle warning C4324.
5857 * src/base/ftobjs.c: Use push and pop for pragmas.
5858 * src/gzip/ftgzip.c: Handle warning C4244.
5859
58602013-06-07 Werner Lemberg <wl@gnu.org>
5861
Werner Lemberg85fd84b2013-06-07 17:10:21 +02005862 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
5863
5864 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
5865
Werner Lemberg4447b2c2013-06-06 21:28:36 +020058662013-06-06 Dave Arnold <darnold@adobe.com>
5867
5868 [cff] Add early exit feature for width-only calls.
5869
5870 This is for `FT_Get_Advance'.
5871
5872 There are 7 places where the spec says the width can be defined:
5873
5874 hstem/hstemhm
5875 vstem/vstemhm
5876 cntrmask/hintmask
5877 hmoveto
5878 vmoveto
5879 rmoveto
5880 endchar
5881
5882 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
5883 if possible.
5884
5885 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
5886 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
5887 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
5888
Werner Lembergbadf3172013-06-06 09:16:38 +020058892013-06-06 Werner Lemberg <wl@gnu.org>
5890
5891 Next round of compiler fixes.
5892
5893 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
5894 Add proper cast.
5895
5896 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
5897 cast.
5898 * include/freetype/internal/ftstream.h: Decorate stream and frame
5899 macros with `FT_Long' and `FT_ULong' as appropriate.
5900
5901 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
5902 raccess_guess_darwin_newvfs): Use cast.
5903
5904 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
5905
5906 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
5907 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
5908
5909 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
5910 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
5911 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
5912
5913 * src/cid/cidparse.c (cid_parser_new): Use cast.
5914
5915 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
5916
5917 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
5918
5919 * src/raster/ftraster.c (ft_black_reset): Use cast.
5920
5921 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
5922 (ALL_POINTS): Fix cast.
5923
5924 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
5925 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
5926
Dave Arnoldc3782492013-06-05 19:57:55 +020059272013-06-05 Dave Arnold <darnold@adobe.com>
5928
5929 Fix more MSVC Win32 compiler warnings.
5930
5931 * src/base/ftobjs.c: Fix typo in MS pragma.
5932
5933 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
5934 `lineno' is only used in debug mode.
5935
5936 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
5937 debug mode.
5938
Werner Lemberg45392b72013-06-05 13:43:20 +020059392013-06-05 Werner Lemberg <wl@gnu.org>
5940
5941 Fix compiler warnings.
5942
5943 * include/freetype/internal/ftmemory.h: Decorate memory allocation
5944 macros with `FT_Long' where appropriate.
5945 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
5946
5947 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
5948 cast.
5949
5950 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
5951 including `md5.c'.
5952
5953 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
5954 cast.
5955
5956 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
5957 (tt_sbit_decoder_load_bitmap): Beautification.
5958
5959 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
5960 variables (earlier).
5961
5962 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
5963
5964 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
5965 where appropriate.
5966
5967 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
5968
Werner Lembergdc624ca2013-06-04 10:30:48 +020059692013-06-04 Werner Lemberg <wl@gnu.org>
5970
Werner Lembergd9634982013-06-04 20:18:57 +02005971 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
5972
5973 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
5974
59752013-06-04 Werner Lemberg <wl@gnu.org>
5976
Werner Lembergdc624ca2013-06-04 10:30:48 +02005977 Apply fixes for cppcheck nitpicks.
5978
5979 http://cppcheck.sourceforge.net/
5980
Werner Lemberg8d8508e2013-06-04 13:09:01 +02005981 The call was (from the top-level of the FreeType tree):
5982
5983 cppcheck --force \
5984 --enable=all \
5985 -I include \
5986 -I include/freetype/ \
5987 -I include/freetype/config/ \
5988 -I include/freetype/internal/ \
5989 . &> cppcheck.log
5990
Werner Lembergdc624ca2013-06-04 10:30:48 +02005991 Note that the current version heavily chokes on FreeType, delivering
Werner Lemberg8d8508e2013-06-04 13:09:01 +02005992 many wrong results. I will report those issues to the cppcheck team
Werner Lembergdc624ca2013-06-04 10:30:48 +02005993 so that a newer version gives improved results hopefully.
5994
5995 */* Improve variable scopes.
5996 */* Remove redundant initializations which get overwritten.
5997
Werner Lemberge8ed2d62013-08-01 12:20:20 +02005998 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
Werner Lembergdc624ca2013-06-04 10:30:48 +02005999 Remove unused variable.
6000
6001 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
6002
6003 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
6004 Remove functionless code.
6005
6006 * src/tools/ftrandom.c (main): Fix memory leak.
6007
Werner Lemberg2429dc32013-06-03 12:41:58 +020060082013-06-03 Werner Lemberg <wl@gnu.org>
6009
6010 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
6011
6012 This controls whether the old FreeType CFF engine gets compiled into
6013 FreeType. It is now disabled by default.
6014
6015 * devel/ftoption.h, include/freetype/config/ftoption.h
6016 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
6017
6018 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
6019 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
6020 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
6021 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
6022 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
6023
6024 * docs/CHANGES: Updated.
6025
Werner Lembergf9cceeb2013-06-02 23:38:13 +020060262013-06-02 Werner Lemberg <wl@gnu.org>
6027
6028 Fix PNG library handling.
6029
6030 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
6031 LIBPNG_LDFLAGS.
6032
Behdad Esfahbod760d3422013-05-29 11:36:18 +020060332013-05-23 Behdad Esfahbod <behdad@google.com>
6034
6035 Add support for color embedded bitmaps (eg. color emoji).
6036
6037 A new load flag, FT_LOAD_COLOR, makes FreeType load color
6038 embedded-bitmaps, following this draft specification
6039
6040 https://color-emoji.googlecode.com/git/specification/v1.html
6041
6042 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
6043 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
6044 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
6045 pre-multiplied sRGB images. If PNG support is available, PNG color
6046 images as defined in the same proposed specification are supported
6047 also.
6048
6049 Note that color bitmaps are converted to grayscale if client didn't
6050 ask for color.
6051
6052 * builds/unix/configure.raw: Search for libpng.
6053 Add `--without-png' option.
6054
6055 * devel/ftoption.h, include/freetype/config/ftoption.h
6056 (FT_CONFIG_OPTION_USE_PNG): New macro.
6057
6058 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
6059
6060 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
6061 `FT_PIXEL_MODE_BGRA'.
6062
6063 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
6064
6065 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
6066 (ft_gray_for_premultiplied_srgb_bgra): New function.
6067 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
6068
6069 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
6070
6071 * src/sfnt/sfnt.c: Include `pngshim.c'.
6072
6073 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
6074 (tt_face_load_eblc): Load `CBLC'.
6075 (tt_sbit_decoder_init): Load `CBDT'.
6076 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
6077 color and grayscale bitmaps.
6078 Set `num_grays'. This is used by `ftview' to choose the blending
6079 algorithm.
6080 (tt_sbit_decoder_load_byte_aligned,
6081 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
6082 tt_sbit_decoder_load_image): Pass load flag.
6083 s/write/pwrite/.
6084 Don't call `tt_sbit_decoder_alloc_bitmap'.
6085 Updated.
6086 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
6087 (tt_sbit_decoder_load_bitmap): Pass load flag.
6088 Handle new glyph formats 17, 18, and 19.
6089 Call `tt_sbit_decoder_alloc_bitmap'.
6090 Flatten color bitmaps if necessary.
6091 (tt_face_load_sbit_image): Updated.
6092
6093 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
6094
6095 * docs/CHANGES: Updated.
6096
Guenter41e44802013-05-24 11:38:09 +020060972013-05-24 Guenter <info@gknw.net>
6098
6099 Apply Savannah patch #8055.
6100
6101 Make `apinames' create an import file for NetWare.
6102
6103 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
6104 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
6105 (names_dump): Handle it.
6106 (usage): Updated.
6107 (main): Handle new command line flag `-wN'.
6108
Behdad Esfahbod2d6e1fb2013-05-23 08:01:20 +020061092013-05-23 Behdad Esfahbod <behdad@behdad.org>
6110
6111 Compilation fix.
6112
6113 * src/truetype/ttinterp.c (TT_RunIns)
6114 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
6115
Infinality18f35ed2013-05-21 20:51:15 -050061162013-05-22 Infinality <infinality@infinality.net>
6117
Infinality3c783c12013-05-21 21:03:00 -05006118 [truetype] Formatting and an additional subpixel tweak.
6119
6120 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
6121 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
6122 Revert previous modification for Verdana clones.
6123
61242013-05-22 Infinality <infinality@infinality.net>
6125
Infinality18f35ed2013-05-21 20:51:15 -05006126 [truetype] Adjust subpixel zp2 moves and tweak rules.
6127
6128 These modifications fix thin diagonal stems in some legacy fonts.
6129
6130 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
6131 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
6132 (Ins_SHP): Disable x moves here for subpixel rendering.
6133 (Ins_SHPIX): Only disable x moves in compatibility mode.
6134 Split out zp2 move reversals and reorder conditional respectively.
6135
6136 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
6137 Only adjust Verdana clones for 17 ppem.
6138 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
6139 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
6140
Infinality63bfa832013-05-20 07:38:21 +020061412013-05-20 Infinality <infinality@infinality.net>
6142
6143 [truetype] Simplify and improve subpixel function detection.
6144
6145 Some small enhancements have allowed the removal of many macros and
6146 the simplification of existing rules in `ttsubpix.c'.
6147
6148 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
6149 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
6150 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
6151 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
6152 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
6153
6154 * src/truetype/ttsubpix.c: Updated affected rules.
6155
6156 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
6157 (INS_FDEF): Add additional function detection.
6158 (INS_ENDF): Set runtime flag.
6159 (Ins_CALL): Skip the call under certain conditions.
6160 Remove bad code.
6161 (Ins_LOOPCALL): Skip the call under certain conditions.
6162 Remove bad code.
6163 (Move_Zp2_Point): Updated.
6164 (Ins_SHPIX): Updated.
6165 Skip the move under some situations.
6166 (Ins_MIAP): Improve conditions.
6167 (Ins_MIRP): Updated.
6168 (Ins_DELTAP): Skip move under certain conditions.
6169 Simplify conditions.
6170 (TT_RunIns): Updated.
6171 Add code to handle new function detection.
6172 Trace messages.
6173
Werner Lembergfd664692013-05-17 17:40:27 +020061742013-05-17 Werner Lemberg <wl@gnu.org>
6175
6176 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
6177
6178 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
6179 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
6180
Werner Lembergf04951a2013-05-17 13:51:07 +020061812013-05-15 Werner Lemberg <wl@gnu.org>
6182
6183 [truetype] Add `interpreter-version' property.
6184
6185 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
6186 at runtime.
6187
Werner Lemberg27991332013-05-17 14:00:26 +02006188 * include/freetype/ftttdrv.h: New file.
6189
6190 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
6191 macro.
6192
Werner Lembergf04951a2013-05-17 13:51:07 +02006193 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
6194 (tt_property_set, tt_property_get): Fill templates.
6195
6196 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
6197 member.
6198 Remove unused `extension_component' member.
6199
6200 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
6201 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
6202 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
6203
6204 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
6205 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
6206 Update all affected functions to use it.
6207 Use TT_INTERPRETER_VERSION_XXX where appropriate.
6208
6209 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
6210 (tt_driver_init): Initialize `interpreter_version'.
6211
6212 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
6213 Use TT_INTERPRETER_VERSION_XXX where appropriate.
6214
Werner Lemberg7441dd82013-05-13 09:12:46 +020062152013-05-13 Werner Lemberg <wl@gnu.org>
6216
Werner Lemberg6650be72013-05-13 10:05:29 +02006217 [truetype] Avoid empty source file.
6218
6219 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
6220 Provide dummy typedef.
6221
62222013-05-13 Werner Lemberg <wl@gnu.org>
6223
Werner Lemberg7441dd82013-05-13 09:12:46 +02006224 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
6225
6226 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
6227
Brian Nixon8d6025c2013-05-13 09:06:42 +020062282013-05-13 Brian Nixon <bnixon@yahoo.com>
6229
6230 Fix Savannah bug #38970.
6231
6232 * src/base/ftdebug.c, builds/win32/ftdebug.c,
6233 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
6234 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
6235
Werner Lembergd51ac9c2013-05-12 06:00:27 +020062362013-05-12 Werner Lemberg <wl@gnu.org>
6237
Werner Lembergcd888752013-05-12 15:08:57 +02006238 [truetype] Add framework for TrueType properties.
6239
6240 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
6241 (tt_property_set, tt_property_get): New functions, still empty.
6242 Define `tt_service_properties' service.
6243 Update `tt_services'.
6244
6245 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
6246 (TT_SERVICE_PROPERTIES_GET): New macro.
6247 (TTModulePIC): Add `tt_service_properties'.
6248
62492013-05-12 Werner Lemberg <wl@gnu.org>
6250
Werner Lembergb112fa42013-05-12 07:29:04 +02006251 Fix Savannah bug #38967.
6252
6253 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
6254
62552013-05-12 Werner Lemberg <wl@gnu.org>
6256
Werner Lembergcbcf33d2013-05-12 07:27:48 +02006257 Introduce unsigned 64bit type (if available).
6258
6259 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
6260 [FT_LONG64]: Provide FT_UInt64.
6261
6262 * builds/unix/ftconfig.in: Synchronized.
6263
62642013-05-12 Werner Lemberg <wl@gnu.org>
6265
Werner Lembergd51ac9c2013-05-12 06:00:27 +02006266 Fix Savannah bug #38968.
6267
6268 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
6269 FT_Property_{Set,Get}.
6270 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
6271 FT_Property_{Set,Get}.
6272
Werner Lembergf6aa0892013-05-10 07:58:47 +020062732013-05-10 Werner Lemberg <wl@gnu.org>
6274
Werner Lembergea2b4752013-05-10 08:04:33 +02006275 [sfnt] Clean up bitmap code.
6276
6277 * src/sfnt/ttsbit.c: Deleted.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02006278 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
Werner Lembergea2b4752013-05-10 08:04:33 +02006279 * rules.mk (SFNT_DRV_H): Updated.
6280
62812013-05-10 Werner Lemberg <wl@gnu.org>
6282
Werner Lembergf6aa0892013-05-10 07:58:47 +02006283 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
6284
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006285----------------------------------------------------------------------------
6286
Werner Lembergf57fc592015-01-17 20:41:43 +01006287Copyright 2013-2015 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006288David Turner, Robert Wilhelm, and Werner Lemberg.
6289
6290This file is part of the FreeType project, and may only be used, modified,
6291and distributed under the terms of the FreeType project license,
6292LICENSE.TXT. By continuing to use, modify, or distribute this file you
6293indicate that you have read the license and understand and accept it
6294fully.
6295
6296
6297Local Variables:
6298version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00006299coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006300End: