blob: 1b6cc001657c07fa3b426580a1b6eaec0b7a35f4 [file] [log] [blame]
Werner Lemberg06339952015-03-11 06:30:23 +010012015-03-11 Werner Lemberg <wl@gnu.org>
2
Werner Lembergcb0f7b62015-03-11 06:51:27 +01003 Fix automatic copyright updating.
4
5 * src/tools/update-copyright: Make scanning of `no-copyright'
6 actually work.
7
8 * src/tools/no-copyright: Don't include README in general.
9
102015-03-11 Werner Lemberg <wl@gnu.org>
11
Werner Lemberg06339952015-03-11 06:30:23 +010012 Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.
13
14 CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
15 builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
16 builds/mac/FreeType.m68k_far.make.txt,
17 builds/mac/FreeType.ppc_carbon.make.txt,
18 builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf,
19 builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
20 builds/wince/vc2008-ce/freetype.vcproj,
21 builds/windows/vc2005/freetype.vcproj,
22 builds/windows/vc2008/freetype.vcproj,
23 builds/windows/vc2010/freetype.vcxproj,
24 builds/windows/vc2010/freetype.vcxproj.filters,
25 builds/windows/visualc/freetype.dsp,
26 builds/windows/visualc/freetype.vcproj,
27 builds/windows/visualce/freetype.dsp,
28 builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
29 include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
30 src/base/ftfntfmt.c, vms_make.com: Updated.
31
Alexei Podtelezhnikov6b832c82015-03-10 23:25:49 -0400322015-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
33
34 Fix Savannah bug #44412 (part 1).
35
36 * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.
37
Werner Lembergeee7d8b2015-03-10 11:15:15 +0100382015-03-10 Werner Lemberg <wl@gnu.org>
39
40 [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.
41
42 * include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
43 Update all callers.
44
45 * docs/CHANGES: Updated.
46
Werner Lemberg493cc032015-03-06 05:38:31 +0100472015-03-06 Werner Lemberg <wl@gnu.org>
48
49 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
50
51 Found by Alexei.
52
Alexei Podtelezhnikovdd7498d2015-03-05 22:51:36 -0500532015-03-05 Alexei Podtelezhnikov <apodtele@gmail.com>
54
55 * src/base/ftstroke.c: Simplify.
56
Werner Lemberg328b7922015-03-04 08:40:23 +0100572015-03-04 Werner Lemberg <wl@gnu.org>
58
59 [truetype] Some fixes and code refactoring in `ttgxvar.c'.
60
61 * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
62 of `point_cnt' if two bytes are read.
63 Use a more vertical coding style.
64 (ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
65 Use a more vertical coding style.
66
Werner Lemberga374c9c2015-03-03 11:23:45 +0100672015-03-03 Werner Lemberg <wl@gnu.org>
68
69 [autofit] Fix Savannah bug #44241.
70
71 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
72 with less than 3 points.
73
Werner Lemberga07029e2015-03-02 06:54:08 +0100742015-03-02 Werner Lemberg <wl@gnu.org>
75
76 Simplify `TYPEOF' macro.
77
78 No need for two arguments.
79
80 * include/config/ftconfig.h, builds/unix/ftconfig.in,
81 builds/vms/ftconfig.h (TYPEOF): Updated.
82
83 * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
84 src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.
85
862015-03-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg4b9234b2015-02-25 06:31:43 +010087
Werner Lemberg851e8152015-03-01 19:27:09 +010088 Various compiler warning fixes for `make multi'.
89
90 * src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
91 src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
92 af_latin_hint_edges), src/autofit/aflatin2.c
93 (af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
94 as `static'.
95
96 * src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
97 Removed. Unused.
98 * src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
99 * src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed. Unused.
100
101 * src/cff/cf2intrp.c: Include `cf2intrp.h'.
102 * src/cff/cffdrivr.c (PAIR_TAG): Removed. Unused.
103
104 * src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed. Unused.
105
106 * src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.
107
108 * src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
109 Removed. Unused.
110
111 * src/raster/ftraster.c (Render_Glyph): Declare as `static'.
112
113 * src/sfnt/ttpost.c (load_format_20): Fix signedness warning.
114
115 * src/truetype/ttdriver.c (PAIR_TAG): Removed. Unused.
116 * src/truetype/ttsubpix.c (is_member_of_family_class,
117 is_member_of_style_class): Declare as `static'.
118
119 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
120 as `static'.
121 * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
122 `static'.
123 (T1_FIELD_COUNT): Removed. Unused.
124 * src/type1/t1parse.h (T1_Done_Table): Removed. Unused.
125
126 * src/type42/t42parse.c (T1_Done_Table): Removed. Unused.
127
1282015-02-25 Werner Lemberg <wl@gnu.org>
129
Werner Lemberg04c22372015-02-25 11:20:20 +0100130 [psaux] Signedness fixes.
131
132 * include/internal/psaux.h, src/psaux/afmparse.c,
133 src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
134 src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.
135
1362015-02-25 Werner Lemberg <wl@gnu.org>
137
Werner Lembergd25ec162015-02-25 09:19:59 +0100138 [otvalid] Signedness fixes.
139
140 * src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
141 src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
142 Apply.
143
1442015-02-25 Werner Lemberg <wl@gnu.org>
145
Werner Lemberg5c9d9bf2015-02-25 08:13:40 +0100146 * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.
147
1482015-02-25 Werner Lemberg <wl@gnu.org>
149
Werner Lemberg83d41812015-02-25 08:10:58 +0100150 [lzw] Signedness fixes.
151
152 * src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.
153
1542015-02-25 Werner Lemberg <wl@gnu.org>
155
Werner Lemberg17b62912015-02-25 07:53:09 +0100156 [gxvalid] Signedness fixes.
157
158 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
159 src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
160 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
161 src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
162 src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
163 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
164 src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.
165
1662015-02-25 Werner Lemberg <wl@gnu.org>
167
Werner Lemberg24e4e962015-02-25 06:57:16 +0100168 [cache] Signedness fixes.
169
170 * src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
171 src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.
172
1732015-02-25 Werner Lemberg <wl@gnu.org>
174
Werner Lemberg559727d2015-02-25 06:55:00 +0100175 Change dimension fields in `FTC_ImageTypeRec' to unsigned type.
176
177 This doesn't break ABI.
178
179 * include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
180 `width' and `height'.
181
182 * docs/CHANGES: Document it.
183
1842015-02-25 Werner Lemberg <wl@gnu.org>
185
Werner Lemberg4b9234b2015-02-25 06:31:43 +0100186 [cache] Don't use `labs'.
187
188 This is the only place in FreeType where this function was used.
189
190 * include/config/ftstdlib.h (ft_labs): Remove.
191
192 * src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
193 `FT_ABS'.
194
Werner Lemberg4d1f7af2015-02-23 07:04:36 +01001952015-02-23 Werner Lemberg <wl@gnu.org>
196
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100197 [cache] Replace `FT_PtrDist' with `FT_Offset'.
198
199 * src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
200 is a better choice for `hash' to hold a pointer than `FT_PtrDist'
201 (a.k.a. `ptrdiff_t'), especially since the latter is signed,
202 causing zillions of signedness warnings. [Note that `hash' was of
Werner Lemberg17b62912015-02-25 07:53:09 +0100203 type `FT_UInt32' before the change to `FT_PtrDist'.]
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100204 Update all users.
205
206 * src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
207 src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.
208
2092015-02-23 Werner Lemberg <wl@gnu.org>
210
Werner Lemberg4d1f7af2015-02-23 07:04:36 +0100211 [smooth, raster] Re-enable standalone compilation.
212
213 * src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
214 [_STANDALONE_]: Define macros.
215
216 * src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
217 FT_HYPOT) [_STANDALONE_]: Define macros.
218
Werner Lemberg03ccfd02015-02-22 08:25:16 +01002192015-02-22 Werner Lemberg <wl@gnu.org>
220
Werner Lembergcb13e712015-02-23 06:41:52 +0100221 [smooth] Signedness fixes.
222
223 * src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.
224
2252015-02-22 Werner Lemberg <wl@gnu.org>
226
Werner Lemberga974e9a2015-02-22 21:02:13 +0100227 * src/raster/ftraster.c: Use the file's typedefs everywhere.
228
2292015-02-22 Werner Lemberg <wl@gnu.org>
230
Werner Lembergb0ebcdc2015-02-22 20:42:49 +0100231 * src/sfnt/ttpost.c (load_format_20): Fix error tracing message.
232
233 Bug introduced 6 commits earlier.
234
2352015-02-22 Werner Lemberg <wl@gnu.org>
236
Werner Lemberg22b1d5c2015-02-22 20:41:03 +0100237 [pshinter] Fix thinko.
238
239 * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
240 check `count'.
241 Bug introduced two commits earlier.
242
2432015-02-22 Werner Lemberg <wl@gnu.org>
244
Werner Lembergca96fe02015-02-22 20:05:04 +0100245 [raster] Signedness fixes.
246
247 * src/raster/ftraster.c, src/raster/ftrend1.c: Apply.
248
2492015-02-22 Werner Lemberg <wl@gnu.org>
250
Werner Lemberg452066c2015-02-22 15:59:02 +0100251 [pshinter] Signedness fixes.
252
253 * src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
254 src/pshinter/pshrec.c: Apply.
255
2562015-02-22 Werner Lemberg <wl@gnu.org>
257
Werner Lemberg41c2ed82015-02-22 15:57:47 +0100258 [pshinter] Use macros for (unsigned) flags, not enumerations.
259
260 * src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
261 Updated.
262 * src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.
263
2642015-02-22 Werner Lemberg <wl@gnu.org>
265
Werner Lemberg25c2f882015-02-22 15:54:31 +0100266 * src/pshinter/pshrec.c: Simplify.
267 (ps_hints_open, ps_hints_stem): Remove switch statement.
268
2692015-02-22 Werner Lemberg <wl@gnu.org>
270
Werner Lemberg01f08422015-02-22 12:03:28 +0100271 [sfnt] Signedness fixes.
272
273 * src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
274 src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
275 src/sfnt/ttsbit.c: Apply.
276 * src/sfnt/sfdriver.c: Apply.
277 (sfnt_get_ps_name): Simplify.
278
2792015-02-22 Werner Lemberg <wl@gnu.org>
280
Werner Lemberg3c374c82015-02-22 09:16:53 +0100281 [bdf] Signedness fixes.
282
283 * src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
284 src/bdf/bdflib.c: Apply.
285
2862015-02-22 Werner Lemberg <wl@gnu.org>
287
Werner Lembergb13945a2015-02-22 09:15:47 +0100288 * src/bdf/bdflib.c (_bdf_atous): New function.
289 (_bdf_parse_glyphs, _bdf_parse_start): Use it.
290
2912015-02-22 Werner Lemberg <wl@gnu.org>
292
Werner Lemberg03ccfd02015-02-22 08:25:16 +0100293 [pcf] Signedness fixes.
294
295 * src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
296 * src/pcf/pcfread.c: Apply.
297 (pcf_get_encodings): Ignore invalid negative encoding offsets.
298
Werner Lemberg633a7292015-02-21 07:02:01 +01002992015-02-21 Werner Lemberg <wl@gnu.org>
300
Werner Lemberg3d7e53f2015-02-21 11:30:54 +0100301 * src/winfonts/winfnt.c: Signedness fixes.
302
3032015-02-21 Werner Lemberg <wl@gnu.org>
304
Werner Lemberg7b6b4172015-02-21 10:39:34 +0100305 [type42] Signedness fixes.
306
307 * src/type42/t42parse.c, src/type42/t42parse.h,
308 src/type42/t42types.h: Apply.
309
3102015-02-21 Werner Lemberg <wl@gnu.org>
311
Werner Lemberg8bfffb42015-02-21 09:52:29 +0100312 [pfr] Signedness fixes.
313
314 * src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
315 src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
316 src/pfr/pfrtypes.h: Apply.
317
3182015-02-21 Werner Lemberg <wl@gnu.org>
319
Werner Lemberg633a7292015-02-21 07:02:01 +0100320 [cff] Minor signedness fixes related to last commit.
321
322 * src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.
323
Werner Lemberg3a8d0532015-02-20 08:35:32 +01003242015-02-20 Werner Lemberg <wl@gnu.org>
325
Werner Lembergc00b05f2015-02-20 20:42:55 +0100326 [cff] Thinkos in bias handling.
327
328 Only the final result is always positive.
329
330 Bug introduced three commits earlier.
331
332 * src/cff/cffgload.c, src/cff/cffgload.h: Apply.
333
3342015-02-20 Werner Lemberg <wl@gnu.org>
335
Werner Lemberg2bf03eb2015-02-20 20:14:11 +0100336 [cid] Fix signedness issues and emit some better error codes.
337
338 * src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
339 src/cid/cidparse.h: Apply.
340 * src/cid/cidload.c: Apply.
341 (parse_fd_array): Reject negative values for number of dictionaries.
342 * src/cid/cidparse.c: Apply.
343 (cid_parser_new): Reject negative values for hex data length.
344
3452015-02-20 Werner Lemberg <wl@gnu.org>
346
Werner Lembergeb05bfb2015-02-20 08:37:35 +0100347 [cff] Signedness fixes for new engine.
348
349 * src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
350 src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.
351
3522015-02-20 Werner Lemberg <wl@gnu.org>
353
Werner Lemberg3a8d0532015-02-20 08:35:32 +0100354 [cff] Signedness fixes for basic infrastructure and old engine.
355
356 * include/internal/pshints.h, src/cff/cffdrivr.c,
357 src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
358 src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.
359
Werner Lemberg81e5ff52015-02-19 09:46:48 +01003602015-02-19 Werner Lemberg <wl@gnu.org>
361
Werner Lemberg3a1df3e2015-02-19 15:42:48 +0100362 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.
363
364 This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
365 version exists), but some fonts set it incorrectly.
366
367 Problem reported by Adam Twardoch <adam@fontlab.com>.
368
3692015-02-19 Werner Lemberg <wl@gnu.org>
370
Werner Lemberg93a884c2015-02-19 14:11:16 +0100371 [cff] Emit better error code for invalid private dict size.
372
373 * src/cff/cffparse.c (cff_parse_private_dict): Reject negative
374 values for size and offset.
375
3762015-02-19 Werner Lemberg <wl@gnu.org>
377
Werner Lembergb57bb112015-02-19 10:44:18 +0100378 [autofit] Fix signedness issues.
379
380 * src/autofit/afangles.c, src/autofit/afcjk.c,
381 src/autofit/afglobal.c, src/autofit/afhints.c,
382 src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
383 src/autofit/hbshim.c: Apply.
384
3852015-02-19 Werner Lemberg <wl@gnu.org>
386
Werner Lemberg81e5ff52015-02-19 09:46:48 +0100387 [autofit] Use macros for (unsigned) flags, not enumerations.
388
389 This harmonizes with other code in FreeType (and reduces the number
390 of necessary casts to avoid compiler warnings).
391
392 * src/autofit/afblue.hin: Make flag macros unsigned.
393 * src/autofit/afblue.h: Regenerated.
394
395 * src/autofit/afcjk.h: Replace flag enumeration with macros.
396 * src/autofit/afcjk.c: Updated.
397
398 * src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
399 macros.
400 * src/autofit/afhints.c: Updated.
401
402 * src/autofit/aflatin.h: Replace flag enumerations with macros.
403 * src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.
404
405 * src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.
406
Werner Lemberg6a0ded72015-02-18 08:51:22 +01004072015-02-18 Werner Lemberg <wl@gnu.org>
408
Werner Lemberg3b5f3322015-02-18 11:45:22 +0100409 [type1] Fix signedness issues.
410
411 * include/internal/psaux.h, include/internal/t1types.h,
412 src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
413 src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.
414
4152015-02-18 Werner Lemberg <wl@gnu.org>
416
Werner Lemberg272e3cd2015-02-18 11:38:46 +0100417 [psaux, type1] Fix minor AFM issues.
418
419 * include/internal/t1types.h (AFM_KernPairRec): Make indices
420 unsigned.
421 Update users.
422 (AFM_FontInfoRec): Make element counters unsigned.
423 Update users.
424 * src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
425 int.
426
427 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
428 Reject negative values for number of kerning elements.
429
430 * src/type1/t1afm.c, src/tools/test_afm.c: Updated.
431
4322015-02-18 Werner Lemberg <wl@gnu.org>
433
Werner Lemberg6bd7d282015-02-18 09:22:06 +0100434 Don't use `FT_PtrDist' for lengths.
435
436 Use FT_UInt instead.
437
438 * include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
439 T1_DecoderRec): Do it.
440
441 * include/internal/t1types.h (T1_FontRec): Ditto.
442
443 * src/cid/cidload.c (cid_parse_dict): Updated.
444 * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
445 * src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
446 * src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
447 parse_chharstrings, parse_dict): Ditto.
448 * src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
449 t42_parse_dict): Ditto.
450
4512015-02-18 Werner Lemberg <wl@gnu.org>
452
Werner Lemberg6a0ded72015-02-18 08:51:22 +0100453 * src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
454 This handles negative values better, avoiding many casts.
455
Werner Lemberg0a33a392015-02-17 08:03:05 +01004562015-02-17 Werner Lemberg <wl@gnu.org>
457
Werner Lembergd3240c52015-02-17 20:30:36 +0100458 [base] Fix Savannah bug #44284.
459
460 * src/base/ftcalc.c (FT_MulFix): Typos.
461
4622015-02-17 Werner Lemberg <wl@gnu.org>
463
Werner Lemberg1f7a4e12015-02-17 10:17:56 +0100464 [truetype] Finish compiler warning fixes for signedness issues.
465
466 * src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
467 src/truetype/ttsubpix.h: Apply.
468
4692015-02-17 Werner Lemberg <wl@gnu.org>
470
Werner Lemberg9daea2c2015-02-17 09:27:56 +0100471 * src/truetype/ttsubpix.c: Adding missing `static' keywords.
472
4732015-02-17 Werner Lemberg <wl@gnu.org>
474
Werner Lembergd9c3f152015-02-17 09:21:26 +0100475 [truetype] More signedness fixes.
476
477 * include/internal/tttypes.h, src/truetype/ttinterp.h,
478 src/truetype/ttobjs.h, src/truetype/ttinterp.c,
479 src/truetype/ttobjs.c: Apply.
480
4812015-02-17 Werner Lemberg <wl@gnu.org>
482
Werner Lemberg0a33a392015-02-17 08:03:05 +0100483 [truetype] Various signedness fixes.
484
485 * include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.
486
487 * src/truetype/ttgload.c: Apply.
488 (TT_Get_VMetrics): Protect against invalid ascenders and descenders
489 while constructing advance height.
490
Werner Lemberg587351b2015-02-16 07:03:22 +01004912015-02-16 Werner Lemberg <wl@gnu.org>
492
Werner Lemberg76abc752015-02-16 22:00:27 +0100493 [base] Finish compiler warning fixes for signedness issues.
494
495 * src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
496 Apply.
497
4982015-02-16 Werner Lemberg <wl@gnu.org>
499
Werner Lemberg10aa8582015-02-16 20:12:54 +0100500 * include/tttables.h (TT_OS2): `fsType' must be FT_UShort.
501
5022015-02-16 Werner Lemberg <wl@gnu.org>
503
Werner Lemberg2e814fc2015-02-16 20:05:08 +0100504 More minor signedness warning fixes.
505
506 * src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
507 src/base/ftutil.c: Apply.
508
5092015-02-16 Werner Lemberg <wl@gnu.org>
510
Werner Lemberg82235d02015-02-16 19:35:16 +0100511 Next round of minor compiler warning fixes.
512
513 * include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
514 type to `FT_Long'.
515 (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.
516
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100517 * include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
Werner Lemberg82235d02015-02-16 19:35:16 +0100518
519 * src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
520 Signedess fixes.
521
5222015-02-16 Werner Lemberg <wl@gnu.org>
523
Werner Lemberg3cfa4d12015-02-16 17:59:06 +0100524 Various minor signedness fixes.
525
526 * include/ftadvanc.h, include/internal/ftobjs.h,
527 src/base/ftgloadr.c, src/base/ftobjs.c: Apply.
528
5292015-02-16 Werner Lemberg <wl@gnu.org>
530
Werner Lemberg6f325c22015-02-16 11:31:32 +0100531 New `TYPEOF' macro.
532
533 This helps suppress signedness warnings, avoiding issues with
534 implicit conversion changes.
535
536 * include/config/ftconfig.h, builds/unix/ftconfig.in,
537 builds/vms/ftconfig.h (TYPEOF): Define.
538
539 * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
540 src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.
541
5422015-02-16 Werner Lemberg <wl@gnu.org>
543
Werner Lemberg1f377f02015-02-16 08:37:09 +0100544 * src/base/ftsystem.c: Use casts in standard C function wrappers.
545 (ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.
546
5472015-02-16 Werner Lemberg <wl@gnu.org>
548
Werner Lemberg0814b802015-02-16 07:29:53 +0100549 Fix Savannah bug #44261.
550
551 * builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
552 environment also while calling the configure script.
553
5542015-02-16 Werner Lemberg <wl@gnu.org>
555
Werner Lemberg587351b2015-02-16 07:03:22 +0100556 * include/internal/ftmemory.h: Add some `FT_Offset' casts.
557 (FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
558 FT_MEM_MOVE): Do it.
559
Werner Lemberg6d7d6362015-02-15 12:30:42 +01005602015-02-15 Werner Lemberg <wl@gnu.org>
561
Werner Lemberg48186b82015-02-16 06:37:36 +0100562 [base] Clean up signedness issues in `ftdbgmem.c'.
563
564 Also fix other minor issues.
565
566 * src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
567 with FT_Long for consistency.
568 (ft_mem_primes): Change type to `FT_Int'.
569 (ft_mem_closest_prime, ft_mem_table_set): Updated.
570
571 (ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
572 ft_mem_debug_realloc): Use `static' keyword and fix signedness
573 warnings where necessary.
574
575 (ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
576 ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
577 and add or remove casts to avoid signedness warnings.
578
5792015-02-15 Werner Lemberg <wl@gnu.org>
580
Werner Lemberg6d7d6362015-02-15 12:30:42 +0100581 [base] Clean up signedness in arithmetic functions.
582
583 This makes the code more readable and reduces compiler warnings.
584
585 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
586 FT_DivFix): Convert input parameters to unsigned, do the
587 computation, then convert the result back to signed.
588 (ft_corner_orientation): Fix casts.
589
Werner Lemberg92359bd2015-02-07 09:47:23 +01005902015-02-07 Werner Lemberg <wl@gnu.org>
591
592 [sfnt] Fix Savannah bug #44184.
593
594 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
595 longer reject `htmx' and `vmtx' tables with invalid length but
596 sanitize them.
597
Jon Anderson416d8792015-02-06 10:16:45 +01005982015-02-06 Jon Anderson <jon@websupergoo.com>
599
600 [truetype] Fix regression in the incremental glyph loader.
601
602 * src/truetype/ttgload.c (load_truetype_glyph): For incremental
603 fonts, the glyph index may be greater than the number of glyphs
604 indicated, so guard the check with a preprocessor conditional.
605
Werner Lembergb6cb4992015-02-06 08:46:06 +01006062015-02-06 Werner Lemberg <wl@gnu.org>
607
608 [autofit] Fix potential memory leak.
609
610 While this doesn't show up with FreeType, exactly the same code
611 leaks with ttfautohint's modified auto-hinter code (which gets used
612 in a slightly different way).
613
614 It certainly doesn't harm since it is similar to already existing
615 checks in the code for embedded arrays.
616
617 * src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
618 and `max_points' for all cases.
619
Werner Lemberg19146a52015-01-31 11:01:33 +01006202015-01-31 Werner Lemberg <wl@gnu.org>
621
622 [autofit] Add support for Thai script.
623
624 Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
625 zone characters!
626
627 * src/autofit/afblue.dat: Add blue zone data for Thai.
628
629 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
630
631 * src/autofit/afscript.h: Add Thai standard characters.
632
633 * src/autofit/afranges.c: Add Thai data.
634
635 * src/autofit/afstyles.h: Add Thai data.
636
Behdad Esfahbod264b5e42015-01-23 21:23:55 +01006372015-01-23 Behdad Esfahbod <behdad@behdad.org>
638
639 [raster] Handle `FT_RASTER_FLAG_AA' correctly.
640
641 This fixes a breakage caused by the commit `[raster] Remove
642 5-level gray AA mode from monochrome rasterizer.'.
643
Werner Lembergd2c531e2015-01-23 22:37:42 +0100644 Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.
Behdad Esfahbod264b5e42015-01-23 21:23:55 +0100645
646 * src/raster/ftraster.c (ft_black_render): Handle
647 `FT_RASTER_FLAG_AA'.
648
649 * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
650 remnants.
651
Werner Lemberg79a5ac62015-01-18 07:30:04 +01006522015-01-18 Werner Lemberg <wl@gnu.org>
653
654 * src/base/ftobjs.c (FT_New_Library): Fix compiler warning.
655
Chris Liddell942aa5f2015-01-18 07:29:48 +01006562015-01-18 Chris Liddell <chris.liddell@artifex.com>
657
658 [raster] Fix Savannah bug #44022.
659
660 Add fallback for glyphs with degenerate bounding boxes.
661
662 If a glyph has only one very narrow feature, the bbox can end up
663 with either the width or height of the bbox being 0, in which case
664 no raster memory is allocated and no attempt is made to render the
665 glyph. This is less than ideal when the drop-out compensation in
666 the rendering code would actually result in the glyph being
667 rendered.
668
669 This problem can be observed with the `I' glyph (gid 47) in the
670 Autodesk RomanS TrueType font.
671
672 * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
673 dimension is zero to explicitly round up/down (instead of simply
674 round).
675
Werner Lemberg50be00d2015-01-17 20:38:31 +01006762015-01-17 Werner Lemberg <wl@gnu.org>
677
678 Add some tools to handle yearly copyright notice updates.
679
680 We are now following the GNU guidelines: A new release automatically
681 means that the copyright year of all affected files gets updated; it
682 is no longer used to track years of modification changes.
683
684 * src/tools/update-copyright-year: New Perl script.
685 * src/tools/update-copyright: New shell script that calls
686 `update-copyright-year' on all files.
687 * src/tools/no-copyright: Exceptions that should not be handled by
688 `update-copyright'
689
Werner Lemberg4eff8542015-01-14 20:06:19 +01006902015-01-14 Werner Lemberg <wl@gnu.org>
691
692 * docs/CHANGES: Updated, using a description from Behdad.
693
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +01006942015-01-14 Behdad Esfahbod <behdad@behdad.org>
695
Behdad Esfahbod48c86622015-01-14 19:38:36 +0100696 * src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.
697
6982015-01-14 Behdad Esfahbod <behdad@behdad.org>
699
Behdad Esfahbod56ddafa2015-01-14 19:36:02 +0100700 [autofit] Add embedded array of segments and edges.
701
702 Avoids multiple mallocs per typical glyphs.
703
704 With this and recent changes to avoid mallocs, the thread-safe
705 stack-based loader is now as fast as the previous model that had one
706 cached singleton.
707
708 * src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
709 New macros.
710 (AF_AxisHintsRec): Add two arrays for segments and edges.
711
712 * src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
713 data if number of segments exceeds given threshold value.
714 (af_axis_hints_new_edge): Only allocate data if number of edges
715 exceeds given threshold value.
716 (af_glyph_hints_done): Updated.
717
7182015-01-14 Behdad Esfahbod <behdad@behdad.org>
719
Behdad Esfahbod6f16b102015-01-14 19:26:49 +0100720 [autofit] Add embedded arrays for points and contours.
721
722 This avoids at least two malloc calls for typical glyphs.
723
724 * src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
725 New macros.
726 (AF_GlyphHintsRec): Add two arrays for contours and points.
727
728 * src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
729 Updated.
730 (af_glyph_hints_reload): Only allocate data if number of contours or
731 points exceeds given threshold values.
732
7332015-01-14 Behdad Esfahbod <behdad@behdad.org>
734
Behdad Esfahbodc2733652015-01-14 19:16:12 +0100735 [autofit] Allocate hints object on the stack.
736
737 This avoids one malloc per load.
738
739 * src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
740 `AF_GlyphHints'.
741 Update prototype.
742
743 * src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
744 parameter instead of `FT_Memory'.
745 (af_loader_done): Directly reset `load_hints'.
746 (af_loader_load_g): Updated.
747
748 * src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
749 `hints' object.
750
7512015-01-14 Behdad Esfahbod <behdad@behdad.org>
752
Behdad Esfahboda4117fb2015-01-14 19:07:54 +0100753 [autofit] Reuse slot glyph loader.
754
755 No need to create a new glyph loader; we can reuse the one from
756 `slot->internal->loader'. It's hard to tell why it was written that
757 way originally, but new code looks sound and correct to me, and
758 avoids lots of allocations.
759
760 * src/autofit/afloader.c (af_loader_init): Change return type to
761 `void'.
762 Don't call `FT_GlyphLoader_New'.
763 (af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
764 (af_loader_load_g): Update code to use `internal->loader', which
765 doesn't need copying of data.
766
767 * src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
768 Update prototype.
769
770 * src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.
771
7722015-01-14 Behdad Esfahbod <behdad@behdad.org>
773
Behdad Esfahbodae6699f2015-01-14 18:55:39 +0100774 [autofit] Remove (unused) support for composite glyphs.
775
776 We never have to deal with composite glyphs in the autohinter, as
777 those will be loaded into FORMAT_OUTLINE by the recursed
778 `FT_Load_Glyph' function.
779
780 In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
781 FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
782 FT_LOAD_NO_HINTING:
783
784 /* resolve load flags dependencies */
785
786 if ( load_flags & FT_LOAD_NO_RECURSE )
787 load_flags |= FT_LOAD_NO_SCALE |
788 FT_LOAD_IGNORE_TRANSFORM;
789
790 if ( load_flags & FT_LOAD_NO_SCALE )
791 {
792 load_flags |= FT_LOAD_NO_HINTING |
793 FT_LOAD_NO_BITMAP;
794
795 load_flags &= ~FT_LOAD_RENDER;
796 }
797
798 and as such the auto-hinter is never called. Thus, the recursion in
799 `af_loader_load_g' never actually happens. So remove the depth
800 counter as well.
801
802 * src/autofit/afloader.c (af_loader_load_g): Remove `depth'
803 parameter.
804 <FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
805 (af_loader_load_glyph): Updated.
806
8072015-01-14 Behdad Esfahbod <behdad@behdad.org>
808
Behdad Esfahbodc242fe42015-01-14 18:48:14 +0100809 [raster] Fix uninitialized memory access.
810
811 Apparently `ras.cProfile' might be uninitialized. This will be the
812 case if `ras.top == ras.cProfile->offset', as can be seen in
813 `End_Profile'. The overshoot code introduced in a change `Fix B/W
814 rasterization of subglyphs with different drop-out modes.' (from
815 2009-06-18) violated this, accessing `ras.cProfile->flags'
816 unconditionally just before calling `End_Profile' (which then
817 detected that `cProfile' is uninitialized and didn't touch it).
818
819 This was harmless, and was not detected by valgrind before because
820 the objects were allocated on the `raster_pool', which was always
821 initialized. With recent change to allocate raster buffers on the
822 stack, valgrind now reported this invalid access.
823
824 * src/raster/ftraster.c (Convert_Glyph): Don't access an
825 uninitialized `cProfile'.
826
8272015-01-14 Behdad Esfahbod <behdad@behdad.org>
828
Behdad Esfahbodb2ba6862015-01-14 18:43:13 +0100829 [smooth] Fix uninitialized memory access.
830
831 Looks like `ras.span_y' could always be used without initialization.
832 This was never detected by valgrind before because the library-wide
833 `raster_pool' was used for the worker object and `raster_pool' was
834 originally zero'ed. But subsequent reuses of it were using `span_y'
835 uninitialized. With the recent change to not use `render_pool' and
836 allocate worker and buffer on the stack, valgrind now detects this
837 uninitialized access.
838
839 * src/smooth/ftgrays.c (gray_raster_render): Initialize
840 `ras.span_y'.
841
8422015-01-14 Behdad Esfahbod <behdad@behdad.org>
843
Behdad Esfahbod603292d2015-01-14 18:35:56 +0100844 [base] Don't initialize unused `driver->glyph_loader'.
845
846 * src/base/ftobjs.c (Destroy_Driver): Don't call
847 `FT_GlyphLoader_Done'.
848 (FT_Add_Module): Don't call `FT_GlyphLoader_New'.
849
8502015-01-14 Behdad Esfahbod <behdad@behdad.org>
851
Behdad Esfahbod51634252015-01-14 18:30:59 +0100852 [base] Don't allocate `library->raster_pool' anymore.
853
854 It's unused after the following commits:
855
856 [raster] Allocate render pool for mono rasterizer on the stack.
857 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
858
859 The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
860 serve, which is, to adjust the pool size. But the pool is now
861 allocated on the stack on demand.
862
863 * src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.
864
8652015-01-14 Behdad Esfahbod <behdad@behdad.org>
866
Behdad Esfahbod6dfdaf42015-01-14 18:21:13 +0100867 [base] Do not reorder library->renderers upon use.
868
869 Instead of keeping `library->renderers' in a MRU order, just leave
870 it as-is. The MRU machinery wasn't thread-safe.
871
872 With this patch, rasterizing glyphs from different faces from
873 different threads doesn't fail choosing rasterizer
874 (FT_Err_Cannot_Render_Glyph).
875
876 Easiest to see that crash was to add a `printf' (or otherwise let
877 thread yield in FT_Throw with debugging enabled).
878
879 * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
880 (FT_Outline_Render): Don't call `FT_Set_Renderer'.
881
8822015-01-14 Behdad Esfahbod <behdad@behdad.org>
883
Behdad Esfahboda773c302015-01-14 18:16:20 +0100884 [raster] Allocate render pool for mono rasterizer on the stack.
885
886 Instead of using the `render_pool' member of `FT_Library' that is
887 provided down to the rasterizer, completely ignore that and allocate
888 needed objects on the stack instead.
889
890 With this patch, rasterizing glyphs from different faces from
891 different threads doesn't crash in the monochrome rasterizer.
892
893 * src/raster/ftraster.c (black_TRaster): Remove `buffer',
894 `buffer_size', and `worker' members.
895
896 (ft_black_render): Create `buffer' locally.
897 (ft_black_reset): Updated.
898
8992015-01-14 Behdad Esfahbod <behdad@behdad.org>
900
Behdad Esfahbod8dc86352015-01-14 18:06:22 +0100901 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
902
903 It was off by default and couldn't be turned on at runtime. And the
904 smooth rasterizer superceded it over ten years ago. No point in
905 keeping. Comments suggested that it was there for compatibility
906 with FreeType 1.
907
908 550 lines down.
909
910 * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
911 RASTER_GRAY_LINES): Remove macros and all associated code.
912
913 (black_TWorker): Remove `gray_min_x' and `gray_max_x'.
914 (black_TRaster): Remove `grays' and `gray_width'.
915
916 (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
917 ft_black_render): Updated.
918
919 * src/raster/ftrend1.c (ft_raster1_render): Simplify code.
920 (ft_raster5_renderer_class): Removed.
921
9222015-01-14 Behdad Esfahbod <behdad@behdad.org>
923
Behdad Esfahbod747ae2c2015-01-14 17:54:26 +0100924 [smooth] Allocate render pool for smooth rasterizer on the stack.
925
926 Instead of using the `render_pool' member of `FT_Library' that is
927 provided down to the rasterizer, completely ignore that and allocate
928 needed objects on the stack instead.
929
930 With this patch, rasterizing glyphs from different faces from
931 different threads doesn't crash in the smooth rasterizer.
932
933 Bugs:
934
935 https://bugzilla.redhat.com/show_bug.cgi?id=678397
936 https://bugzilla.redhat.com/show_bug.cgi?id=1004315
937 https://bugzilla.redhat.com/show_bug.cgi?id=1165471
938 https://bugs.freedesktop.org/show_bug.cgi?id=69034
939
940 * src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
941 `buffer_size', `band_size', and `worker' members.
942
943 (gray_raster_render): Create `buffer', `buffer_size', and
944 `band_size' locally.
945 (gray_raster_reset): Updated.
946
9472015-01-14 Behdad Esfahbod <behdad@behdad.org>
948
Behdad Esfahbod531d4632015-01-14 17:46:55 +0100949 [truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
950
951 Previously the code had stipulation for using a per-TT_Size exec
952 context if `size->debug' was true. But there was no way that
953 `size->debug' could *ever* be true. As such, the code was always
954 using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
955 This was, clearly, not threadsafe.
956
957 With this patch, loading glyphs from different faces from different
958 threads doesn't crash in the bytecode loader code.
959
960 * src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
961 (TT_DriverRec): Remove `context' member.
962
963 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
964 `TT_ExecContext' code related to a global `TT_Driver' object.
965
966 (tt_driver_done): Don't remove `TT_ExecContext' object here but ...
967 (tt_size_done_bytecode): ... here.
968
969 (tt_driver_init): Don't create `TT_ExecContext' object here but ...
970 (tt_size_init_bytecode): ... here, only on demand.
971
972 * src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
973 code.
974 (TT_New_Context): Remove `TT_ExecContext' code related to a global
975 `TT_Driver' object.
976
977 * src/truetype/ttinterp.h: Updated.
978
979 * src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
980
9812015-01-14 Behdad Esfahbod <behdad@behdad.org>
982
Behdad Esfahbod89bc8d42015-01-14 16:01:19 +0100983 [autofit] Allocate AF_Loader on the stack instead of AF_Module.
984
985 Stop sharing a global `AF_Loader'. Allocate one on the stack during
986 glyph load.
987
988 Right now this results in about 25% slowdown, to be fixed in a
989 following commit.
990
991 With this patch loading glyphs from different faces from different
992 threads doesn't immediately crash in the autohinting loader code.
993
994 Bugs:
995
996 https://bugzilla.redhat.com/show_bug.cgi?id=1164941
997
998 * src/autofit/afloader.c (af_loader_init): Pass
999 `AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
1000 (af_loader_reset, af_loader_load_glyph): Also pass `loader' as
1001 argument.
1002 (af_loader_done): Use `AF_Loader' instead of `AF_Module' as
1003 argument.
1004
1005 * src/autofit/afmodule.c (af_autofitter_init): Don't call
1006 `af_loader_init'.
1007 (af_autofitter_done): Don't call `af_loader_done'.
1008 (af_autofitter_load_glyph): Use a local `AF_Loader' object.
1009
1010 * src/autofit/afloader.h: Include `afmodule.h'.
1011 Update prototypes.
1012 Move typedef for `AF_Module' to...
1013
1014 * src/autofit/afmodule.h: ... this place.
1015 No longer include `afloader.h'.
1016
10172015-01-14 Behdad Esfahbod <behdad@behdad.org>
1018
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +01001019 * src/type42/t42objs.h (T42_DriverRec): Remove unused member.
1020
Werner Lemberg36d03c92015-01-12 11:26:30 +010010212015-01-12 Werner Lemberg <wl@gnu.org>
1022
1023 Fix Savannah bug #43976.
1024
1025 Assure that FreeType's internal include directories are found before
1026 `CPPFLAGS' (which might be set by the user in the environment), and
1027 `CPPFLAGS' before `CFLAGS'.
1028
1029 * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
1030 (FT_COMPILE): Make this a special variable for compiling only the
1031 files handled in `freetype.mk'.
1032 (.c.$O): Removed, unused.
1033
1034 * src/*/rules.mk (*_COMPILE): Fix order of include directories.
1035
Werner Lembergd03a67a2015-01-11 08:39:14 +010010362015-01-11 Werner Lemberg <wl@gnu.org>
1037
Werner Lemberg95b57052015-01-11 09:50:49 +01001038 [truetype] Prettyfing.
1039
1040 * src/truetype/ttinterp.c (project, dualproj, fast_project,
1041 fast_dualproj): Rename to...
1042 (PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.
1043
10442015-01-11 Werner Lemberg <wl@gnu.org>
1045
Werner Lembergea173c02015-01-11 08:58:54 +01001046 * src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.
1047
1048 Based on a patch from Behdad.
1049
10502015-01-11 Werner Lemberg <wl@gnu.org>
1051
Werner Lemberg628578c2015-01-11 08:53:31 +01001052 * src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.
1053
10542015-01-11 Werner Lemberg <wl@gnu.org>
1055
Werner Lemberg08e79092015-01-11 08:45:50 +01001056 * src/truetype/ttinterp.c (Normalize): Remove unused argument.
1057
10582015-01-11 Werner Lemberg <wl@gnu.org>
1059
Werner Lembergd03a67a2015-01-11 08:39:14 +01001060 [truetype] More macro expansions.
1061
Werner Lemberg4aaadf42015-01-11 08:42:28 +01001062 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
1063 expansion.
1064
10652015-01-11 Werner Lemberg <wl@gnu.org>
1066
1067 [truetype] More macro expansions.
1068
Werner Lembergd03a67a2015-01-11 08:39:14 +01001069 * src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
1070 adjusting funtion calls where necessary.
1071 (FT_UNUSED_ARG): Removed, no longer needed.
1072
Werner Lemberg1b4d68c2015-01-10 19:56:28 +010010732015-01-10 Werner Lemberg <wl@gnu.org>
1074
Werner Lembergeb341362015-01-11 00:23:27 +01001075 [truetype] More macro expansions.
1076
1077 Based on a patch from Behdad.
1078
1079 * src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
1080 `Ins_*' functions.
1081 (TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
1082 (ARRAY_BOUND_ERROR): Remove second definition, which is no longer
1083 needed.
1084 (Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
1085 (Ins_SxyTCA): New function.
1086
10872015-01-10 Werner Lemberg <wl@gnu.org>
1088
Werner Lemberg01be1302015-01-10 23:05:37 +01001089 [truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.
1090
1091 Behdad suggested this code simplification, and nobody objected...
1092
1093 * include/config/ftoption.h, devel/ftoption.h
1094 (TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.
1095
1096 * src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
1097 Remove related code.
1098 (ARRAY_BOUND_ERROR): Use do-while loop.
1099
11002015-01-10 Werner Lemberg <wl@gnu.org>
1101
Werner Lembergfae0c812015-01-10 20:23:10 +01001102 [truetype] More macro expansions.
1103
Werner Lemberg6cc1f122015-01-10 21:56:59 +01001104 * src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
1105 EXEC_ARG): Remove by replacing with expansion.
1106
11072015-01-10 Werner Lemberg <wl@gnu.org>
1108
1109 [truetype] More macro expansions.
1110
Werner Lemberg24681452015-01-10 21:53:48 +01001111 Based on a patch from Behdad.
1112
1113 * src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
1114 SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
1115 CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
1116 CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
1117 CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
1118 COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
1119 with expansion.
1120
1121 (Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
1122 CUR_fast_dualproj): Replace with macros `project', `dualproj',
1123 `fast_project', `fast_dualproj'.
1124
11252015-01-10 Werner Lemberg <wl@gnu.org>
1126
1127 [truetype] More macro expansions.
1128
Werner Lembergfae0c812015-01-10 20:23:10 +01001129 * src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
1130 with expansion.
1131
11322015-01-10 Werner Lemberg <wl@gnu.org>
1133
Werner Lemberg5a752f32015-01-10 20:08:35 +01001134 [truetype] Remove code for static TrueType interpreter.
1135
1136 This is a follow-up patch.
1137
1138 * src/truetype/ttinterp.c, src/truetype/ttinterp.h
1139 [TT_CONFIG_OPTION_STATIC_INTERPRETER,
1140 TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.
1141
11422015-01-10 Werner Lemberg <wl@gnu.org>
1143
Werner Lemberg1b4d68c2015-01-10 19:56:28 +01001144 * src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.
1145
1146 This starts a series of patches that simplifies the code of the
1147 bytecode interpreter.
1148
Werner Lemberg232bd942014-12-30 21:44:51 +010011492014-12-30 Werner Lemberg <wl@gnu.org>
1150
1151 * Version 2.5.5 released.
1152 =========================
1153
1154
1155 Tag sources with `VER-2-5-5'.
1156
1157 * docs/VERSION.DLL: Update documentation and bump version number to
1158 2.5.5.
1159
1160 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1161 builds/windows/vc2005/index.html,
1162 builds/windows/vc2008/freetype.vcproj,
1163 builds/windows/vc2008/index.html,
1164 builds/windows/vc2010/freetype.vcxproj,
1165 builds/windows/vc2010/index.html,
1166 builds/windows/visualc/freetype.dsp,
1167 builds/windows/visualc/freetype.vcproj,
1168 builds/windows/visualc/index.html,
1169 builds/windows/visualce/freetype.dsp,
1170 builds/windows/visualce/freetype.vcproj,
1171 builds/windows/visualce/index.html,
1172 builds/wince/vc2005-ce/freetype.vcproj,
1173 builds/wince/vc2005-ce/index.html,
1174 builds/wince/vc2008-ce/freetype.vcproj,
1175 builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
1176
1177 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
1178
1179 * builds/unix/configure.raw (version_info): Set to 17:4:11.
1180 * CMakeLists.txt (VERSION_PATCH): Set to 5.
1181 * docs/CHANGES: Updated.
1182
1183 * builds/toplevel.mk (dist): Fix typos.
1184
Alexei Podtelezhnikov70241552014-12-24 12:11:46 -050011852014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com>
1186
1187 [base] Formatting and nanooptimizations.
1188
1189 * src/base/ftcalc.c,
1190 * src/base/fttrigon.c: Revise sign restoration.
1191
Werner Lemberg06842c72014-12-13 07:42:51 +010011922014-12-13 Werner Lemberg <wl@gnu.org>
1193
1194 * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
1195
Werner Lembergb9438112014-12-11 13:33:14 +010011962014-12-11 Werner Lemberg <wl@gnu.org>
1197
Werner Lemberg82119502014-12-11 22:27:06 +01001198 * builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
1199
1200 Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
1201 (contrary to GNU tar), so force the POSIX-1.1988 format.
1202
1203 Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
1204
12052014-12-11 Werner Lemberg <wl@gnu.org>
1206
Werner Lemberg812ed342014-12-11 14:07:29 +01001207 * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
1208
12092014-12-11 Werner Lemberg <wl@gnu.org>
1210
Werner Lembergc9ca6ff2014-12-11 13:39:39 +01001211 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
1212
1213 Problem reported by Dennis Felsing <dennis@felsin9.de>.
1214
12152014-12-11 Werner Lemberg <wl@gnu.org>
1216
Werner Lembergb9438112014-12-11 13:33:14 +01001217 * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
1218
1219 Problem reported by Dennis Felsing <dennis@felsin9.de>.
1220
suzuki toshiya2b592822014-12-10 00:27:41 +090012212014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1222
suzuki toshiya9bd1e552014-12-09 14:51:52 +09001223 [gxvalid] Fix a naming convention conflicting with ftvalid.
1224
1225 See previous changeset for otvalid.
1226
1227 * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
1228 `valid' by `gxvalid'.
1229 * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
1230 gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
1231 gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
1232 gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
1233 gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
1234 it is typed as GXV_Validator.
1235
12362014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1237
suzuki toshiya51abdf62014-12-09 00:58:04 +09001238 [otvalid] Fix a naming convention conflicting with ftvalid.
1239
1240 Some prototypes in ftvalid.h use `valid' for the variables
1241 typed as FT_Validator. Their implementations in src/base/
1242 ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
1243
1244 Some macros in otvcommn.h assume the exist of the variable
1245 `valid' typed as OTV_Validator in the caller.
1246
1247 Mixing these two conventions cause invalid pointer conversion
1248 and unexpected SEGV in longjmp. To prevent it, all variables
1249 typed as OTV_Validator are renamed to `otvalid'.
1250
1251 * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
1252 * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
1253 otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
1254 if it is typed as OTV_Validator.
1255
12562014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1257
suzuki toshiya2b592822014-12-10 00:27:41 +09001258 [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
1259
1260 Original patch is designed by Werner Lemberg. Extra part
1261 for otvalid and gxvalid are added by suzuki toshiya, see
1262 discussion:
1263 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
1264 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
1265
1266 * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
1267 * src/gxvalid/gxvcommn.h: Ditto.
1268 * src/otvalid/otvcommn.h: Ditto.
1269
Werner Lemberg74af85c2014-12-08 16:01:50 +010012702014-12-08 Werner Lemberg <wl@gnu.org>
1271
1272 [pcf] Fix Savannah bug #43774.
1273
1274 Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
1275 functions. Since the PCF format doesn't have an official
1276 specification, we have to exactly follow these functions' behaviour.
1277
1278 The problem was unveiled with a patch from 2014-11-06, fixing issue
1279 #43547.
1280
1281 * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
1282 element. Instead, assign real size.
1283
Werner Lemberg66883b52014-12-07 09:17:06 +010012842014-12-07 Werner Lemberg <wl@gnu.org>
1285
Werner Lemberg553c9672014-12-07 19:29:52 +01001286 Work around a bug in Borland's C++ compiler.
1287
1288 See
1289
1290 http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
1291
1292 for Borland's bug tracker entry.
1293
1294 Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
1295 http://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
1296
1297 * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
1298 (gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
1299
13002014-12-07 Werner Lemberg <wl@gnu.org>
1301
Werner Lemberg9870d6d2014-12-07 09:40:47 +01001302 */*: Decorate hex constants with `U' and `L' where appropriate.
1303
13042014-12-07 Werner Lemberg <wl@gnu.org>
1305
Werner Lemberg66883b52014-12-07 09:17:06 +01001306 [truetype] Prevent memory leak for buggy fonts.
1307
1308 * src/truetype/ttobjs.c (tt_size_done): Unconditionally call
1309 `tt_size_done_bytecode'.
1310
Werner Lemberg94926682014-12-06 07:11:44 +010013112014-12-06 Werner Lemberg <wl@gnu.org>
1312
1313 * Version 2.5.4 released.
1314 =========================
1315
1316
1317 Tag sources with `VER-2-5-4'.
1318
1319 * docs/VERSION.DLL: Update documentation and bump version number to
1320 2.5.4.
1321
1322 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1323 builds/windows/vc2005/index.html,
1324 builds/windows/vc2008/freetype.vcproj,
1325 builds/windows/vc2008/index.html,
1326 builds/windows/vc2010/freetype.vcxproj,
1327 builds/windows/vc2010/index.html,
1328 builds/windows/visualc/freetype.dsp,
1329 builds/windows/visualc/freetype.vcproj,
1330 builds/windows/visualc/index.html,
1331 builds/windows/visualce/freetype.dsp,
1332 builds/windows/visualce/freetype.vcproj,
1333 builds/windows/visualce/index.html,
1334 builds/wince/vc2005-ce/freetype.vcproj,
1335 builds/wince/vc2005-ce/index.html,
1336 builds/wince/vc2008-ce/freetype.vcproj,
1337 builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/.
1338
1339 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
1340
1341 * builds/unix/configure.raw (version_info): Set to 17:3:11.
1342 * CMakeLists.txt (VERSION_PATCH): Set to 4.
1343 * docs/CHANGES: Updated.
1344
Werner Lemberg934ef382014-12-04 06:38:51 +010013452014-12-04 Werner Lemberg <wl@gnu.org>
1346
1347 docs/CHANGES: Updated, formatted.
1348
Dave Arnold2cdc4562014-12-04 06:10:16 +010013492014-12-04 Dave Arnold <darnold@adobe.com>
1350
Dave Arnoldf89396c2014-12-04 06:17:26 +01001351 [cff] Modify an FT_ASSERT.
1352
1353 * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
1354 bug #43661, the test font `...aspartam.otf' still triggers an
1355 FT_ASSERT. Since hintmap still works with count==0, ...
1356 (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
1357 suppress the assert.
1358
13592014-12-04 Dave Arnold <darnold@adobe.com>
1360
Dave Arnold2cdc4562014-12-04 06:10:16 +01001361 [cff] Fix Savannah bug #43661.
1362
1363 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
1364 cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
1365 hintmask is constructed.
1366
1367 * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
1368 avoid reading past end of hintmask.
1369
Werner Lemberg16188eb2014-12-03 10:18:34 +010013702014-12-03 Werner Lemberg <wl@gnu.org>
1371
Werner Lemberg8fa69a82014-12-03 20:07:14 +01001372 docs/CHANGES: Updated.
1373
13742014-12-03 Werner Lemberg <wl@gnu.org>
1375
Werner Lemberga632b5f2014-12-03 19:30:44 +01001376 [autofit] Better fix for conversion specifiers in debug messages.
1377
1378 Using `%ld' for pointer differences causes warnings on 32bit
1379 platforms. The correct type would be (the relatively new) `%td',
1380 however, this is missing on some important platforms.
1381
1382 This patch improves the change from 2014-11-28.
1383
1384 * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our
1385 pointer differences are always sufficiently small.
1386 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1387 af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
1388
13892014-12-03 Werner Lemberg <wl@gnu.org>
1390
Werner Lemberg16188eb2014-12-03 10:18:34 +01001391 FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
1392
1393 All public FreeType enumeration and flag values are uppercase...
1394
1395 * include/tttables.h (FT_Sfnt_Tag): Implement it. For backwards
1396 compatilibity, retain the old values as macros.
1397
1398 * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
1399 (get_sfnt_table): Updated.
1400
Werner Lemberg2af25ac2014-12-02 08:38:57 +010014012014-12-02 Werner Lemberg <wl@gnu.org>
1402
Werner Lembergde43ace2014-12-02 23:06:04 +01001403 * include/*: Improve structure of documentation.
1404
1405 . Add and update many `<Order>' tags.
1406 . Apply various documentation fixes.
1407 . Remove details to deprecated (or never implemented) data.
1408
14092014-12-02 Werner Lemberg <wl@gnu.org>
1410
Werner Lembergca1f5cc2014-12-02 22:49:25 +01001411 [docmaker] Always handle `<Order>' section elements.
1412
1413 Previously, those elements were handled only for sections present in
1414 a `<Sections>' chapter element.
1415
1416 * src/tools/docmaker/content.py (ContentProcessor::finish):
1417 Implement it.
1418
14192014-12-02 Werner Lemberg <wl@gnu.org>
1420
Werner Lembergef6a3522014-12-02 21:16:59 +01001421 [docmaker] Properly handle empty rows in Synopsis.
1422
1423 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
1424 `&nbsp;' for empty fields.
1425
14262014-12-02 Werner Lemberg <wl@gnu.org>
1427
Werner Lemberg0e96f052014-12-02 11:08:31 +01001428 [docmaker] Thinko.
1429
1430 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1431 Emit `/empty/' string for first element also.
1432
14332014-12-02 Werner Lemberg <wl@gnu.org>
1434
Werner Lemberg102d4a72014-12-02 10:27:40 +01001435 [docmaker] Honour empty lines in `<Order>' section element.
1436
1437 This greatly improves the readability of the `Synopsis' links.
1438
1439 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1440 Insert string `/empty/' between items.
1441
1442 * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
1443 robust against nonexistent keys.
1444
1445 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
1446 empty <td> elements for `/empty/'.
1447
14482014-12-02 Werner Lemberg <wl@gnu.org>
1449
Werner Lemberg2af25ac2014-12-02 08:38:57 +01001450 [docmaker] Ensure Python 3 compatibility.
1451
1452 * src/tools/docmaker/content.py (ContentProcessor::set_section,
1453 ContentProcessor::finish): Replace `has_key' function with `in'
1454 keyword.
1455
1456 * src/tools/docmaker/formatter.py (Formatter::__init__): Replace
1457 sorting function with a key generator.
1458 (Formatter::add_identifier): Replace `has_key' function with `in'
1459 keyword.
1460
1461 * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
1462 Replace `has_key' function with `in' keyword.
1463 (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
1464 integer division.
1465 s/<>/>/.
1466
1467 * src/tools/docmaker/utils.py: Import `itertools'.
1468 (index_sort): Replaced by...
1469 (index_key): ... this new key generator (doing exactly the same).
1470
Werner Lemberg8f795112014-11-29 06:49:15 +010014712014-11-29 Werner Lemberg <wl@gnu.org>
1472
Werner Lemberg80bfeb12014-12-01 10:07:52 +01001473 [docmaker] Don't output a block multiple times.
1474
1475 This bug was hidden by not processing all lines of `<Order>' blocks.
1476
1477 * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
1478 out field names.
1479
14802014-11-29 Werner Lemberg <wl@gnu.org>
1481
Werner Lemberg0dbad762014-12-01 08:44:48 +01001482 [docmaker] Use field values as HTML link targets where possible.
1483
1484 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
1485 Accept second, optional argument to specify a name.
1486 (HtmlFormatter::html_source_quote): Link to field ID if possible.
1487 (HtmlFormatter::print_html_field_list): Emit `id' attribute.
1488
14892014-11-29 Werner Lemberg <wl@gnu.org>
1490
Werner Lemberg785b1d02014-11-30 22:16:34 +01001491 [docmaker] Allow empty lines in `<Order>' blocks.
1492
1493 Before this patch, the suggested order of entries stopped at the
1494 first empty line.
1495
1496 Obviously, nobody noticed that this problem caused a much reduced
1497 set of links in the `Synopsis' sections; in particular, the
1498 `<Order>' blocks contain a lot of entries that wouldn't be listed
1499 otherwise...
1500
1501 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1502 New function to iterate over all items.
1503 (DocSection::process): Use it.
1504
15052014-11-29 Werner Lemberg <wl@gnu.org>
1506
Werner Lemberg16b3e622014-11-30 20:58:27 +01001507 * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
1508
1509 After the single asterisk there must be no other immediately following
1510 asterisk.
1511
15122014-11-29 Werner Lemberg <wl@gnu.org>
1513
Werner Lemberg434bc692014-11-29 23:12:55 +01001514 * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
Werner Lemberg51987ea2014-11-29 22:19:29 +01001515
Werner Lemberg434bc692014-11-29 23:12:55 +010015162014-11-29 Werner Lemberg <wl@gnu.org>
1517
1518 [docmaker] Improve HTML code for table of contents.
1519
1520 * src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
Werner Lemberg51987ea2014-11-29 22:19:29 +01001521 together with proper CSS.
1522
15232014-11-29 Werner Lemberg <wl@gnu.org>
1524
Werner Lembergaa834ce2014-11-29 20:08:29 +01001525 [docmaker] Provide higher-level markup and simplify HTML.
1526
1527 * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
1528 elements, use CSS descendants (of class `section') to format the
1529 data.
1530
1531 Also remove reduntant <p> and <br> elements, replacing them with
1532 proper CSS.
1533
1534 Globally reduce page width to 75%.
1535
1536 (block_header): Rename <div> class to `section'.
1537
15382014-11-29 Werner Lemberg <wl@gnu.org>
1539
Werner Lemberg3bb97022014-11-29 16:12:37 +01001540 [docmaker] Add `top' links after blocks.
1541
1542 * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
1543
15442014-11-29 Werner Lemberg <wl@gnu.org>
1545
Werner Lemberga31f9712014-11-29 07:18:44 +01001546 * src/tools/docmaker/tohtml.py: Improve CSS for fields.
1547
Werner Lemberg3bb97022014-11-29 16:12:37 +01001548 Make fields align horizontally relative to full line width.
Werner Lemberga31f9712014-11-29 07:18:44 +01001549
15502014-11-29 Werner Lemberg <wl@gnu.org>
1551
Werner Lemberg8f795112014-11-29 06:49:15 +01001552 * src/tools/docmaker/tohtml.py: Fix index and TOC templates.
1553
1554 This thinko was introduced 2014-11-27.
1555
Werner Lembergba1ba0c2014-11-28 22:04:14 +010015562014-11-28 Werner Lemberg <wl@gnu.org>
1557
1558 [docmaker] Format field lists with CSS.
1559
1560 This also simplifies the inserted HTML code.
1561
1562 * src/tools/docmaker/tohtml.py
1563 (HtmlFormatter::print_html_field_list): Do it.
1564
suzuki toshiya348fffa2014-11-28 16:05:59 +090015652014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1566
1567 Fix compiler warning to the comparison between signed and
1568 unsigned variable.
1569
1570 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
1571 between `ypos + ysize' and FT_INT_{MAX,MIN}.
1572
Werner Lembergba1ba0c2014-11-28 22:04:14 +010015732014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg984e0712014-11-28 05:33:58 +01001574
Werner Lembergba1ba0c2014-11-28 22:04:14 +01001575 [docmaker] Replace empty `<td>' with CSS.
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001576
1577 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
1578 it.
1579
Werner Lembergba1ba0c2014-11-28 22:04:14 +010015802014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001581
Werner Lemberg984e0712014-11-28 05:33:58 +01001582 [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
1583
1584 * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
1585 (source_*): Use `<div>'.
1586 (HtmlFormatter::block_enter): s/<h4>/<h3>/.
1587
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +090015882014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1589
1590 Fix compiler warning to conversion specifiers in debug messages.
1591
1592 * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
Werner Lemberga632b5f2014-12-03 19:30:44 +01001593 modifier to dump long integers.
1594 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +09001595
Werner Lemberg26d699e2014-11-27 19:22:52 +010015962014-11-27 Werner Lemberg <wl@gnu.org>
1597
Werner Lemberg984e0712014-11-28 05:33:58 +01001598 * src/tools/docmaker/tohtml.py: Use more CSS for index.
Werner Lemberg7ea36342014-11-27 19:38:31 +01001599
16002014-11-27 Werner Lemberg <wl@gnu.org>
1601
Werner Lembergedcf8172014-11-27 19:28:48 +01001602 [docmaker] Replace `name' attribute of `<a>' with `id'.
1603
1604 * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
1605
16062014-11-27 Werner Lemberg <wl@gnu.org>
1607
Werner Lemberg26d699e2014-11-27 19:22:52 +01001608 * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
1609
1610 For `Index' and `TOC' links, we now simply use the `text-align' CSS
1611 property of `<td>' to enforce flush-left and flush-right,
1612 eliminating the hack with an empty, full-width `<td>' element
1613 inbetween.
1614
1615 The change also enforces the same (smaller) size for all index and
1616 TOC links.
1617
suzuki toshiya2676e072014-11-28 00:58:25 +090016182014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1619
suzuki toshiya1b12f5d2014-11-28 01:22:26 +09001620 * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
1621 cf2font.c could not find it under `make multi' build.
1622
16232014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1624
suzuki toshiya2676e072014-11-28 00:58:25 +09001625 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
1626 unrequired negative value check for `width' and `height'.
1627
Werner Lemberg8585cf52014-11-27 10:49:05 +010016282014-11-27 Werner Lemberg <wl@gnu.org>
1629
Werner Lembergdd3fee02014-11-27 13:20:52 +01001630 * src/tools/docmaker/tohtml.py: More HTML table refactoring.
1631
1632 Replace some `<table>' tags with `<div>' to simplify structure.
1633
1634 Move `bgcolor' attribute to CSS.
1635
1636 Replace most `width' attributes with CSS. The remaining instances
1637 (providing a similar effect as LaTeX's `\hfill' command) are removed
1638 in a later patch.
1639
16402014-11-27 Werner Lemberg <wl@gnu.org>
1641
Werner Lemberga5ad26a2014-11-27 10:52:24 +01001642 * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
1643
16442014-11-27 Werner Lemberg <wl@gnu.org>
1645
Werner Lembergba67c612014-11-27 10:51:49 +01001646 * src/tools/docmaker/tohtml.py: Center <table> with CSS.
1647
16482014-11-27 Werner Lemberg <wl@gnu.org>
1649
Werner Lemberg5594fa52014-11-27 10:50:50 +01001650 * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
1651
16522014-11-27 Werner Lemberg <wl@gnu.org>
1653
Werner Lemberg8585cf52014-11-27 10:49:05 +01001654 * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
1655
1656 This starts a series of commits into the direction of generating
1657 valid HTML 5 code, especially using much more CSS.
1658
suzuki toshiya1b057042014-11-27 17:53:20 +090016592014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1660
1661 Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
1662 suggested by Alexei.
1663
1664 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
1665 negative values in `xpos' and `ypos + ysize'.
1666 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
1667 too negative values in `x_left' and `y_top'. Either negative
1668 values in `width' and `height' are checked.
1669
Werner Lemberg3d167cb2014-11-27 05:19:41 +010016702014-11-27 Werner Lemberg <wl@gnu.org>
1671
Werner Lembergc52882a2014-11-27 08:01:25 +01001672 [docmaker] Produce better HTML code.
1673
1674 * src/tools/docmaker/tohtml.py: Always use double quotes for
1675 attribute values.
1676 (source_footer): Close `td' and `tr' groups.
1677
16782014-11-27 Werner Lemberg <wl@gnu.org>
1679
Werner Lembergdbb93152014-11-27 07:20:48 +01001680 Use better way to disable creation of .pyc files for `make refdoc'.
1681
1682 Python 2.6 was released in 2008...
1683
1684 * builds/freetype.mk (refdoc): Use python's `-B' option.
1685
1686 * builds/detect.mk (std_setup, dos_setup): Mention required python
1687 version for `refdoc' target.
1688
16892014-11-27 Werner Lemberg <wl@gnu.org>
1690
Werner Lemberge8a5c332014-11-27 06:48:37 +01001691 * src/tools/docmaker/sources.py (re_bold, re_italic): Use
1692 non-grouping parentheses.
1693 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
1694 Updated.
1695
16962014-11-27 Werner Lemberg <wl@gnu.org>
1697
Werner Lemberg3d167cb2014-11-27 05:19:41 +01001698 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
1699
1700 Introdruced in previous change. Reported by Alexei.
1701
Werner Lemberga593a042014-11-26 18:42:48 +010017022014-11-26 Werner Lemberg <wl@gnu.org>
1703
Werner Lembergf34f1922014-11-26 21:59:21 +01001704 * src/*: Add checks for parameters of API functions where missing.
1705
1706 `API functions' are functions tagged with `FT_EXPORT_DEF'.
1707
1708 Besides trivial fixes, the following changes are included, too.
1709
1710 * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
1711 error code if no service is available.
1712
1713 * src/base/ftinit.c (FT_Done_FreeType): Change return value for
1714 invalid `library' parameter to `Invalid_Library_Handle'.
1715
1716 * src/base/ftobjs.c (FT_New_Size): Change return value for invalid
1717 `asize' parameter to `Invalid_Argument'.
1718
1719 * src/base/ftoutln.c (FT_Outline_Copy): Change return value for
1720 invalid `source' and `target' parameters to `Invalid_Outline'.
1721 (FT_Outline_Done_Internal): Change return value for invalid
1722 `outline' parameter to `Invalid_Outline'.
1723
17242014-11-26 Werner Lemberg <wl@gnu.org>
1725
Werner Lemberga593a042014-11-26 18:42:48 +01001726 * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
1727
suzuki toshiya5aff8532014-11-26 14:36:12 +090017282014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1729
suzuki toshiyacd4a5a22014-11-27 00:20:48 +09001730 * src/base/ftobj.c (Mac_Read_POST_Resource): Additional
1731 overflow check in the summation of POST fragment lengths,
1732 suggested by Mateusz Jurczyk <mjurczyk@google.com>.
1733
17342014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1735
suzuki toshiya1720e812014-11-26 16:39:00 +09001736 * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
1737 and fold too long tracing messages.
1738
17392014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1740
suzuki toshiya18a8f0d2014-11-26 16:11:38 +09001741 Fix Savannah bug #43540.
1742
1743 * src/base/ftmac.c (parse_fond): Prevent a buffer overrun
1744 caused by a font including too many (> 63) strings to store
1745 names[] table.
1746
17472014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1748
suzuki toshiya45331672014-11-26 16:02:17 +09001749 * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
1750 variables to read the lengths in POST fragments. Suggested by
1751 Mateusz Jurczyk <mjurczyk@google.com>.
1752
17532014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1754
suzuki toshiya35252ae2014-11-26 15:52:23 +09001755 Fix Savannah bug #43539.
1756
1757 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1758 by a broken POST table in resource-fork.
1759
17602014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1761
suzuki toshiya240c94a2014-11-26 15:43:29 +09001762 Fix Savannah bug #43538.
1763
1764 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1765 by a broken POST table in resource-fork.
1766
17672014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1768
suzuki toshiya5aff8532014-11-26 14:36:12 +09001769 * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
1770 by a broken POST table in resource-fork. Return after freeing
1771 the buffered POST table when it is found to be broken.
1772
Werner Lemberg04edbbd2014-11-25 10:21:13 +010017732014-11-25 Werner Lemberg <wl@gnu.org>
1774
Werner Lemberg02b8e7e2014-11-25 11:31:51 +01001775 */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
1776
17772014-11-25 Werner Lemberg <wl@gnu.org>
1778
Werner Lemberg0d4aa232014-11-25 11:26:14 +01001779 */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
1780
17812014-11-25 Werner Lemberg <wl@gnu.org>
1782
Werner Lembergf4f9e682014-11-25 11:11:55 +01001783 */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
1784
17852014-11-25 Werner Lemberg <wl@gnu.org>
1786
Werner Lemberg04c2aa12014-11-25 10:22:12 +01001787 */*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
1788
17892014-11-25 Werner Lemberg <wl@gnu.org>
1790
Werner Lemberg04edbbd2014-11-25 10:21:13 +01001791 */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
1792
Werner Lembergeca0f062014-11-24 10:22:08 +010017932014-11-24 Werner Lemberg <wl@gnu.org>
1794
Werner Lemberg3e867112014-11-25 09:01:07 +01001795 [Savannah bug #43682] Adjust some renderer callbacks.
1796
1797 * src/raster/ftraster.c (ft_black_set_mode): Change return type to
1798 `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
1799
1800 * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
1801 for orthogonality.
1802 (ft_grays_raster): Use it.
1803
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018042014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg3e867112014-11-25 09:01:07 +01001805
Werner Lemberg6689a002014-11-25 08:53:09 +01001806 [Savannah bug #43682] Properly handle missing return errors.
1807
1808 The functions in this patch *do* return non-trivial errors that must
1809 be taken care of.
1810
1811 * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
1812 (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
1813 src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
1814 src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
1815 (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
1816 (load_truetype_glyph <subglyph loop>, tt_loader_init,
1817 TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
1818 src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
1819
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018202014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg6689a002014-11-25 08:53:09 +01001821
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001822 [Savannah bug #43682] Add/remove `void' casts to some functions.
1823
1824 We use a cast to indicate that we intentionally ignore a function's
1825 return value. However, this doesn't apply to API functions where
1826 errors can only happen for trivially invalid input.
1827
1828 * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
1829 src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
1830 (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
1831 src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
1832 (t42_parse_encoding): Do it.
1833
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018342014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001835
Werner Lembergef439fd2014-11-25 08:14:15 +01001836 [Savannah bug #43682] Change some signatures to `void' return type.
1837
1838 * include/internal/pshints.h (PSH_Globals_SetScaleFunc),
1839 include/internal/sfnt.h (TT_Get_Metrics_Func),
1840 src/pshinter/pshglob.c (psh_globals_set_scale),
1841 src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
1842 (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
1843 TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
1844 TT_Save_Context): Do it.
1845
1846 * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
1847 src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
1848 (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
1849 (tt_size_run_fpgm, tt_size_run_prep): Updated.
1850
18512014-11-24 Werner Lemberg <wl@gnu.org>
1852
Werner Lemberg6889f7b2014-11-24 17:16:08 +01001853 Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
1854
1855 This is no longer used.
1856
1857 * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
1858 src/sfnt/ttcmap.c: Do it.
1859
18602014-11-24 Werner Lemberg <wl@gnu.org>
1861
Werner Lembergf0292bb2014-11-24 10:51:21 +01001862 [sfnt] Fix Savannah bug #43680.
1863
1864 This adds an additional constraint to make the fix from 2013-01-25
1865 really work.
1866
1867 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
1868 Check `p' before `num_glyphs'.
1869
18702014-11-24 Werner Lemberg <wl@gnu.org>
1871
Werner Lembergeca0f062014-11-24 10:22:08 +01001872 [truetype] Fix Savannah bug #43679.
1873
1874 * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
1875 `record_size'.
1876
Jarkko Pöyry96341dc2014-11-24 09:53:07 +010018772014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com>
1878
1879 [cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
1880
Werner Lemberged6a9df2014-12-06 23:28:58 +01001881 Don't cast cmap init function pointers to an incompatible type.
Jarkko Pöyry96341dc2014-11-24 09:53:07 +01001882
1883 Without this patch, the number of parameters between declaration and
1884 the real signature differs. Calling such a function results in
1885 undefined behavior.
1886
1887 ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
1888 6.5.2.2 Function calls
1889 9 If the function is defined with a type that is not
1890 compatible with the type (of the expression) pointed to by
1891 the expression that denotes the called function, the
1892 behavior is undefined.
1893
1894 On certain platforms (c -> js with emscripten) this causes
1895 termination of execution or invalid calls because in the emscripten
1896 implementation, function pointers of different types are stored in
1897 different pointer arrays. Incorrect pointer type here results in
1898 indexing of an incorrect array.
1899
1900 * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
1901 src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
1902 t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
1903 t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
1904 signature.
1905
Werner Lemberga7a42072014-11-24 06:44:45 +010019062014-11-24 Werner Lemberg <wl@gnu.org>
1907
Werner Lembergf70d9342014-11-24 09:31:32 +01001908 [sfnt] Fix Savannah bug #43672.
1909
1910 * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
1911 minimum table length test.
1912
19132014-11-24 Werner Lemberg <wl@gnu.org>
1914
Werner Lemberg73be9f92014-11-24 07:30:05 +01001915 [type1, type42] Another fix for Savannah bug #43655.
1916
1917 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
1918 (t42_parse_charstrings): Add another boundary testing.
1919
19202014-11-24 Werner Lemberg <wl@gnu.org>
1921
Werner Lemberga7a42072014-11-24 06:44:45 +01001922 [docmaker] Formatting, copyright, improved documentation.
1923
1924 * src/tools/docmaker/*: No code changes besides trivial
1925 modifications.
1926
Werner Lemberg9bd20b72014-11-22 06:24:45 +010019272014-11-22 Werner Lemberg <wl@gnu.org>
1928
Werner Lembergaf834612014-11-22 13:29:10 +01001929 [bdf] Fix Savannah bug #43660.
1930
1931 * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
1932 `_BDF_GLYPH_BITS'.
1933
19342014-11-22 Werner Lemberg <wl@gnu.org>
1935
Werner Lemberg42fcd662014-11-22 12:44:33 +01001936 [type42] Allow only embedded TrueType fonts.
1937
1938 This is a follow-up to Savannah bug #43659.
1939
1940 * src/type42/t42objs.c (T42_Face_Init): Exclusively use the
1941 `truetype' font driver for loading the font contained in the `sfnts'
1942 array.
1943
19442014-11-22 Werner Lemberg <wl@gnu.org>
1945
Werner Lemberg37881872014-11-22 10:46:47 +01001946 [type42] Fix Savannah bug #43659.
1947
1948 * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
1949
1950 * src/type42/t42parse.c (t42_parse_sfnts): Always set
1951 `face->ttf_size' directly. This ensures a correct stream size in
1952 the call to `FT_Open_Face', which follows after parsing, even for
1953 buggy input data.
1954 Fix error messages.
1955
19562014-11-22 Werner Lemberg <wl@gnu.org>
1957
Werner Lemberg5f201ab2014-11-22 09:16:39 +01001958 [cff] Fix Savannah bug #43658.
1959
1960 * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
1961 return values of point allocation routines.
1962
19632014-11-22 Werner Lemberg <wl@gnu.org>
1964
Werner Lemberg9bd20b72014-11-22 06:24:45 +01001965 [sfnt] Fix Savannah bug #43656.
1966
1967 * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
1968 tests.
1969
Werner Lemberg6de76172014-11-21 06:05:49 +010019702014-11-21 Werner Lemberg <wl@gnu.org>
1971
Werner Lembergdd897102014-11-21 22:19:28 +01001972 [type1, type42] Fix Savannah bug #43655.
1973
1974 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
1975 (t42_parse_charstrings): Fix boundary testing.
1976
19772014-11-21 Werner Lemberg <wl@gnu.org>
1978
Werner Lembergb1fc00d2014-11-21 12:06:40 +01001979 * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
1980
19812014-11-21 Werner Lemberg <wl@gnu.org>
1982
Werner Lemberg9154dab2014-11-21 08:03:51 +01001983 [ftlcdfil] Obey flow direction.
1984
1985 * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
1986 Handle `up' flow.
1987
19882014-11-21 Werner Lemberg <wl@gnu.org>
1989
Werner Lemberg644d6fa2014-11-21 07:28:50 +01001990 * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
1991
1992 This commit completes argument checks and adds support for different
1993 flow directions.
1994
19952014-11-21 Werner Lemberg <wl@gnu.org>
1996
Werner Lemberg6de76172014-11-21 06:05:49 +01001997 * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
1998
1999 This commit adds argument checks and support for different flow
2000 directions.
2001
Werner Lemberg1e6e1b82014-11-20 21:07:56 +010020022014-11-20 Werner Lemberg <wl@gnu.org>
2003
2004 * src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
2005
Werner Lembergd6061212014-11-19 21:13:23 +010020062014-11-19 Werner Lemberg <wl@gnu.org>
2007
Werner Lembergb3500af2014-11-19 21:28:21 +01002008 Change some fields in `FT_Bitmap' to unsigned type.
2009
2010 This doesn't break ABI.
2011
2012 * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
2013 `pixel_mode', and `palette_mode' unsigned types.
2014
2015 * src/base/ftbitmap.c: Updated.
2016 (FT_Bitmap_Copy): Fix casts.
2017
2018 * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
2019 Updated.
2020
20212014-11-19 Werner Lemberg <wl@gnu.org>
2022
Werner Lembergdf485772014-11-19 21:21:23 +01002023 Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
2024
2025 * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
2026 for the pitch while copying data.
2027 Correctly set pitch sign in target bitmap.
2028
20292014-11-19 Werner Lemberg <wl@gnu.org>
2030
Werner Lembergd6061212014-11-19 21:13:23 +01002031 Minor code improvement in `FT_Bitmap_Embolden'.
2032
2033 * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
2034 Fix thinko.
2035
Alexei Podtelezhnikovf841ad32014-11-19 21:19:06 -050020362014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2037
2038 * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
2039
Werner Lemberga67c43e2014-11-19 06:46:23 +010020402014-11-19 Behdad Esfahbod <behdad@behdad.org>
2041
2042 Avoid compiler warnings on x86-64 for `FT_MulFix'.
2043
2044 `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
2045 but several inline implementations of it in `ftcalc.h' take
2046 `FT_Int32' arguments. This is causing compiler warnings on x86-64:
2047 If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
2048 inline implementation of this function, integer values are truncated
2049 from 64bit to 32bit.
2050
2051 * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
2052 casts.
2053
Werner Lemberg54abd222014-11-15 09:05:22 +010020542014-11-15 Werner Lemberg <wl@gnu.org>
2055
2056 [sfnt] Fix Savannah bug #43597.
2057
2058 * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
2059 bitmaps.
2060
Werner Lemberg602040b2014-11-12 20:51:20 +010020612014-11-12 Werner Lemberg <wl@gnu.org>
2062
Werner Lemberg257c2702014-11-12 21:42:13 +01002063 [sfnt] Fix Savannah bug #43591.
2064
2065 * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
2066 and multiplication overflow.
2067
20682014-11-12 Werner Lemberg <wl@gnu.org>
2069
Werner Lemberg677ddf42014-11-12 21:26:44 +01002070 [sfnt] Fix Savannah bug #43590.
2071
2072 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
2073 Protect against addition overflow.
2074
20752014-11-12 Werner Lemberg <wl@gnu.org>
2076
Werner Lembergf46add12014-11-12 21:06:08 +01002077 [sfnt] Fix Savannah bug #43589.
2078
2079 * src/sfnt/sfobjs.c (woff_open_font): Protect against addition
2080 overflow.
2081
20822014-11-12 Werner Lemberg <wl@gnu.org>
2083
Werner Lemberg602040b2014-11-12 20:51:20 +01002084 [sfnt] Fix Savannah bug #43588.
2085
2086 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
2087 tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
2088 against overflow in additions and multiplications.
2089
Alexei Podtelezhnikov2e73a1b2014-11-09 23:22:43 -050020902014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
2091
2092 [base] CORDIC improvements.
2093
2094 The scaling between the hypotenuse and its CORDIC approximation is
2095 based on regression analysis. The smaller padding for `theta' is
2096 justifed by its maximum error of less than 6.
2097
2098 * src/base/fttrigon.c (ft_trig_downscale): Borrow code from
2099 ./ftcalc.c (ft_multo64), change linear intercept.
2100 (ft_trig_pseudo_polarize): Decrease `theta' padding.
2101
Werner Lemberg0e73d212014-11-09 01:27:38 +010021022014-11-09 Werner Lemberg <wl@gnu.org>
2103
2104 * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
2105
2106 One more place to check whether `radius' is zero.
2107
2108 Problem reported by Marco Wertz <marco.wertz@gmx.de>.
2109
Werner Lemberg2c4832d2014-11-07 07:42:33 +010021102014-11-07 Werner Lemberg <wl@gnu.org>
2111
Werner Lemberg602040b2014-11-12 20:51:20 +01002112 [bdf] Fix Savannah bug #43535.
Werner Lemberg2c4832d2014-11-07 07:42:33 +01002113
2114 * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
2115 character more than `strncmp'.
2116 s/ft_strncmp/_bdf_strncmp/ everywhere.
2117
Werner Lembergf49a1002014-11-06 13:30:28 +010021182014-11-06 Werner Lemberg <wl@gnu.org>
2119
Werner Lemberg602040b2014-11-12 20:51:20 +01002120 [pcf] Fix Savannah bug #43548.
Werner Lembergef1eba72014-11-06 23:25:05 +01002121
Werner Lemberg2c4832d2014-11-07 07:42:33 +01002122 * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
2123 and column values.
Werner Lembergef1eba72014-11-06 23:25:05 +01002124
21252014-11-06 Werner Lemberg <wl@gnu.org>
2126
Werner Lemberg602040b2014-11-12 20:51:20 +01002127 [pcf] Fix Savannah bug #43547.
Werner Lemberg0e2f5d52014-11-06 22:32:46 +01002128
2129 * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
2130 values.
2131
21322014-11-06 Werner Lemberg <wl@gnu.org>
2133
Werner Lembergf49a1002014-11-06 13:30:28 +01002134 * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
2135
Infinalityfacfc792014-11-03 07:24:59 +010021362014-11-03 Infinality <infinality@infinality.net>
2137
2138 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
2139
2140 The previous commit deteriorates rendering of DejaVu and similar
2141 fonts; this gets compensated with this rule.
2142
Werner Lemberg706f7522014-11-03 07:20:57 +010021432014-11-03 Werner Lemberg <wl@gnu.org>
2144
2145 * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
2146
2147 Before this patch, it was impossible to ever call DELTAP[123] in
2148 subpixel hinting mode as described in the ClearType whitepaper; it
2149 only worked if in `compatibility mode'. However, compatibility mode
2150 essentially disables SHPIX, completely ruining hinting of
2151 ttfautohint output, for example.
2152
2153 We now follow the whitepaper more closely so that DELTAP[123]
2154 instructions for touched points in the non-subpixel direction are
2155 executed.
2156
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -040021572014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
2158
Alexei Podtelezhnikov525d4872014-10-31 22:12:37 -04002159 [smooth] Improve code readability.
2160
2161 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2162
21632014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
2164
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -04002165 [smooth] Reduce outline translations during rendering.
2166
2167 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
2168 virtually by modifying cbox, actually translate outline if cumulative
2169 shift is not zero.
2170
Alexei Podtelezhnikovc7fd9352014-10-30 22:43:01 -040021712014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com>
2172
2173 [smooth] Fix Savannah bug #35604 (cont'd).
2174
2175 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
2176 casts that became unnecessary after the variable type upgrades.
2177
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -040021782014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
2179
Alexei Podtelezhnikov465ab992014-10-29 23:45:23 -04002180 [smooth] Improve code readability.
2181
2182 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2183
21842014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
2185
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -04002186 Unify hypotenuse approximations.
2187
2188 * include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
2189 * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
2190 * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
2191
Werner Lembergfe151522014-10-25 05:56:59 +020021922014-10-25 Werner Lemberg <wl@gnu.org>
2193
2194 [cff] Test valid darkening parameter macros in `ftoption.h'.
2195
2196 We no longer need an otherwise unused typedef that can cause a gcc
2197 warning.
2198 Problem reported by Alexei.
2199
2200 * src/cff/cffobjs.c (cff_driver_init): Use
2201 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
2202 (SET_DARKENING_PARAMETERS): Removed.
2203 Compile time tests are now ...
2204
2205 * devel/ftoption.h, include/config/ftoption.h: ... here.
2206
Alexei Podtelezhnikovaba0f492014-10-24 23:50:57 -040022072014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com>
2208
2209 Improve flat corner definition.
2210
2211 * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
2212 distance with the alpha max plus beta min algorithm.
2213 * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
2214 metric.
2215
David Weißdd8de1a2014-10-23 20:01:48 +020022162014-10-23 David Weiß <David.Weiss@ptvgroup.com>
2217
2218 [build] Improve property file for vc2010.
2219
2220 User-defined properties should be empty by default to prevent linker
2221 failures.
2222
2223 * builds/windows/vc2010/freetype.user.props,
2224 builds/windows/vc2010/freetype.vcxproj:
2225 s/OptionsDirectory/UserOptionDirectory/.
2226 Comment out all user options.
2227
Werner Lembergdd570e92014-10-23 19:57:37 +020022282014-10-23 Werner Lemberg <wl@gnu.org>
2229
2230 [cff] Work around bug in preprocessor of MSVC 2010.
2231
2232 We have been hit by
2233
2234 https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
2235
2236 * devel/ftoption.h, include/config/ftoption.h: Replace
2237 `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
2238 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
2239
2240 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no
2241 longer need double expansion.
2242 (SET_DARKENING_PARAMETERS_0): Renamed to ...
2243 (SET_DARKENING_PARAMETERS): ... this.
2244 Update call.
2245
Werner Lembergcc7bb802014-10-20 08:35:50 +020022462014-10-20 Werner Lemberg <wl@gnu.org>
2247
2248 [sbit] Minor fixes.
2249
2250 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
2251 Accept overlay format also, but emit warning message in that case.
2252 (tt_sbit_decoder_load_metrics): Add missing newline to error
2253 message.
2254 (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
2255 7.1) to the list of unsupported formats.
2256
Alexei Podtelezhnikov118e6512014-10-19 23:31:08 -040022572014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2258
2259 [truetype] Clean up bytecode rounding.
2260
2261 Zero distance does not have to be treated specially if you follow
2262 specifications and check the sign as the very last step of rounding.
2263
2264 * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
2265 Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
2266 macros when available, do not check for non-zero distance.
2267 (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
2268 if sign changed.
2269
Alexei Podtelezhnikovd4aabda2014-10-18 10:10:04 -040022702014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
2271
2272 [truetype] Unwrap engine compensation settings.
2273
2274 * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
2275
David Weißfede19e2014-10-18 14:59:20 +020022762014-10-18 David Weiß <David.Weiss@ptvgroup.com>
2277
2278 [build] Add property file to vc2010 project.
2279
2280 This simplifies custom build configurations, especially for
2281 automated build environments.
2282
2283 * builds/windows/vc2010/freetype.user.props: New configuration file.
2284
2285 * builds/windows/vc2010/freetype.vcxproj: Include
2286 `freetype.user.props' and use its data fields.
2287
2288 * builds/windows/vc2010/index.html: Updated.
2289
Werner Lembergc9c33f22014-10-18 11:01:14 +020022902014-10-18 Werner Lemberg <wl@gnu.org>
2291
2292 [autofit] Add blue-zone support for Telugu.
2293
2294 This essentially moves the Telugu script from the `Indic' hinter to
2295 the `Latin' hinter.
2296
2297 Note that this is a first shot and quite certainly needs
2298 refinements.
2299
2300 * src/autofit/afblue.dat: Add blue zone data for Telugu.
2301
2302 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2303
2304 * src/autofit/afscript.h: Add Telugu standard characters and move
2305 data out of AF_CONFIG_OPTION_INDIC block.
2306
2307 * src/autofit/afranges.c: Move Telugu data out of
2308 AF_CONFIG_OPTION_INDIC block.
2309
2310 * src/autofit/afstyles.h: Update Telugu data; in particular, use
2311 AF_WRITING_SYSTEM_LATIN.
2312
Werner Lemberg54306f52014-10-18 10:42:28 +020023132014-10-18 David Wimsey <david@wimsey.us>
2314
2315 [cmake] Add iOS build support.
Werner Lemberg1050aa92014-10-18 10:45:09 +02002316 From Savannah patch #8497.
Werner Lemberg54306f52014-10-18 10:42:28 +02002317
2318 * builds/cmake/iOS.cmake: New file. Universal binaries are built
2319 with both 32 and 64 bit arm architectures.
2320
2321 * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
2322 toolchain. Possible values are `OS' to build on iOS, or
2323 `SIMULATOR' to build on APPLE.
2324
Werner Lemberg1a1750f2014-10-16 22:54:01 +020023252014-10-16 Behdad Esfahbod <behdad@behdad.org>
2326 Werner Lemberg <wl@gnu.org>
2327
2328 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
2329
2330 * devel/ftoption.h, include/config/ftoption.h
2331 (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
2332
2333 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
2334 SET_DARKENING_PARAMETERS_0): New macros.
2335 (cff_driver_init): Use new macros.
2336
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -040023372014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
2338
2339 [truetype] Limit delta shift range.
2340
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002341 The valid range for delta shift is zero through six. Negative values
2342 are invalid according to
2343
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04002344 https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
2345
2346 * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002347 * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
2348 is out of range.
2349 (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04002350
Werner Lemberg03987bf2014-10-16 07:19:46 +020023512014-10-16 Werner Lemberg <wl@gnu.org>
2352
2353 A better fix for Savannah bug #43392.
2354 Suggested by Doug Felt <dougfelt@gmail.com>.
2355
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002356 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
Werner Lemberg03987bf2014-10-16 07:19:46 +02002357 `vertAdvance' to zero...
2358
2359 * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
2360 value for `vertAdvance' based on `linearVertAdvance' in case
2361 `vertAdvance' is zero. Note that the previous computed ad-hoc value
2362 for `linearVertAdvance' was apparently not tested in a real-life
2363 situation.
2364
David Weiß3889cb22014-10-14 11:35:16 +020023652014-10-14 David Weiß <David.Weiss@ptvgroup.com>
2366
2367 [build] Better optimization settings for vc2010 solution file.
2368
2369 * builds/windows/vc2010/freetype.sln,
2370 builds/windows/vc2010/freetype.vcxproj: Updated.
2371
Werner Lemberg8f178092014-10-14 08:28:09 +020023722014-10-14 Werner Lemberg <wl@gnu.org>
2373
2374 [autofit] Adjust Devenagari character range.
2375
2376 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
2377 are common to all other Indic scripts.
2378
Werner Lemberg1ca5fa12014-10-12 08:31:32 +020023792014-10-12 Werner Lemberg <wl@gnu.org>
2380
2381 [sfnt] Fix Savannah bug #43392.
2382
2383 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
2384 vertical metrics uninitialized.
2385
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -040023862014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2387
2388 [base] Small bbox correction.
2389
2390 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002391 instead of initial point that could be `off' in conic outlines.
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -04002392
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -040023932014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2394
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04002395 [base] Fix Savannah bug #43356.
2396
2397 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002398 of implicit `to'.
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04002399 (BBox_Line_To): New emitter that does not update bbox.
2400
24012014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2402
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -04002403 [base] Introduce and use new macro `FT_UPDATE_BBOX'
2404
2405 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
2406 (FT_Outline_Get_BBox): Use it here.
2407
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -040024082014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
2409
2410 [base] Significant optimization of `ft_div64by32'
2411
2412 We shift as many bits as we can into the high register, perform
2413 32-bit division with modulo there, then work through the remaining
2414 bits with long division. This optimization is especially noticeable
2415 for smaller dividends that barely use the high register.
2416
2417 * src/base/ftcalc.c (ft_div64by32): Updated.
2418
Dave Arnold537c55d2014-10-02 06:32:32 +020024192014-10-02 Dave Arnold <darnold@adobe.com>
2420
2421 [cff] Fix Savannah bug #43271.
2422
2423 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
2424 detection to use logarithms and clamp `scaledStem'.
2425
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -040024262014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
2427
Alexei Podtelezhnikov74d0aad2014-10-01 23:27:15 -04002428 * src/base/ftcalc.c: Remove miscellaneous type casts.
2429
24302014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
2431
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -04002432 [base] Use more common `FT_MSB' implementation with masks.
2433
2434 * src/base/ftcalc.c (FT_MSB): Updated.
2435
Alexei Podtelezhnikov955aff12014-09-30 23:09:39 -040024362014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
2437
2438 [base] Clean up.
2439
2440 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
2441 code.
2442
Alexei Podtelezhnikov7f491112014-09-25 22:54:38 -040024432014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
2444
2445 [base] Avoid unnecessary long division.
2446
2447 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
2448 lack thereof are predicted accurately.
2449
2450 * src/base/ftcalc.c (ft_div64by32): Improve readability.
2451 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
2452 when multiplication stayed within 32 bits.
2453
Werner Lemberg5b68e4f2014-09-24 19:06:13 +020024542014-09-24 Werner Lemberg <wl@gnu.org>
2455
2456 [autofit] Minor clean-ups.
2457
2458 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
2459
2460 * src/autofit/afhints.c (af_glyph_hints_dump_points,
2461 af_glyph_hints_align_strong_points): Updated.
2462
2463 * src/autofit/aflatin.c (af_latin_hints_link_segments,
2464 af_latin_hints_compute_segments), src/autofit/afcjk.c
2465 (af_cjk_hints_link_segments), src/autofit/aflatin2.c
2466 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
2467 There are no longer fake segments since more than 10 years...
2468
Werner Lemberg387a9fe2014-09-22 06:42:24 +020024692014-09-22 Werner Lemberg <wl@gnu.org>
2470
2471 [autofit] Minor code streamlining.
2472
2473 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
2474 initialization.
2475
Alexei Podtelezhnikov5c894842014-09-19 22:03:15 -040024762014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2477
2478 * src/base/ftcalc.c: Harmonize code.
2479
24802014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002481
Alexei Podtelezhnikovef070d42014-09-15 22:06:19 -04002482 [base] Tighten the overflow check in `FT_MulDiv'.
2483
2484 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
2485
24862014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2487
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002488 Fix Savannah bug #43153.
2489
2490 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -04002491 overflow in `divider'.
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002492
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -040024932014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2494
Alexei Podtelezhnikov336735d2014-09-03 22:55:26 -04002495 [base] Tighten the overflow check in `FT_DivFix'.
2496
2497 This fixes a 13-year old bug. The original overflow check should have
2498 been updated when rounding was introduced into this function
2499 (c2cd00443b).
2500
2501 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
2502 * include/freetype.h (FT_DivFix): Updated documentation.
2503
25042014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2505
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -04002506 [base] Tighten the overflow check in `FT_MulFix'.
2507
2508 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
2509
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -040025102014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
2511
2512 [truetype] Shortcut ppem calculations for square pixels.
2513
2514 * src/truetype/ttinterp.h (TT_ExecContextRec): New field
2515 `cur_ppem_func' with a function pointer.
2516 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
2517 depending on the pixel geometry to either...
2518 (Current_Ppem_Stretched): ... this for stretched pixels.
2519 (Current_Ppem): ... or this for square pixels.
2520 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
2521
Behdad Esfahbod1ec98b22014-08-31 08:47:11 +020025222014-08-31 Behdad Esfahbod <behdad@behdad.org>
2523
2524 Don't use `register' keyword. Fixes compiler warnings.
2525
2526 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
2527 * src/gzip/inftrees.c (huft_build): Ditto.
2528 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
2529
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -040025302014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
2531
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -04002532 [truetype] Optimize DELTAP and DELTAC.
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -04002533
2534 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
2535 calculations outside of the loop.
2536
Alexei Podtelezhnikov98688592014-08-21 23:28:52 -040025372014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
2538
2539 Fix Savannah bug #43033.
2540
2541 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2542 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
2543 64-bit type is `long'.
2544
Alexei Podtelezhnikov8fd87d42014-08-20 00:57:22 -040025452014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
2546
2547 [base] Small optimization of `FT_MulFix'.
2548
2549 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
2550 32-bit calculations.
2551
Alexei Podtelezhnikovf09326a2014-08-20 00:08:38 -040025522014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2553
2554 [base] Use unsigned calculation in `FT_MulDiv'.
2555
2556 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
2557
Alexei Podtelezhnikov382f3152014-08-18 23:16:15 -040025582014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
2559
2560 [base] Remove truncation in `FT_DivFix'.
2561
2562 * src/base/ftcalc.c (FT_DivFix): Updated.
2563
Alexei Podtelezhnikov5ef20232014-08-14 23:21:46 -040025642014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
2565
2566 Minor refactoring.
2567
2568 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
2569
25702014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovc7022462014-08-14 23:01:01 -04002571
2572 Turn FT_MSB into a macro when using gcc builtins.
2573
2574 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
2575
Alexei Podtelezhnikovf8efbcf2014-08-12 23:22:17 -040025762014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
2577
2578 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
2579
2580 * src/base/ftbbox.c (BBox_Cubic_Check): Update.
2581 (update_cubic_max): Repalce with...
2582 (cubic_peak): ... this, which now handles upscaling.
2583
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -040025842014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2585
Alexei Podtelezhnikov28018d42014-08-12 00:26:16 -04002586 [base] Handle collapsed outlines to avoid undefined FT_MSB.
2587
2588 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
2589
25902014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2591
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -04002592 [base] Restore FT_MulFix inlining.
2593
2594 * include/freetype.h (FT_MulFix): Unconditionally defined.
2595
2596 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
2597
2598 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
2599 which conditionally replaces the function with an inline version
2600 through the macro.
2601
Alexei Podtelezhnikov90be4b62014-08-08 22:27:10 -040026022014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2603
2604 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
2605
Werner Lembergd17cabf2014-07-26 09:53:50 +090026062014-07-26 Werner Lemberg <wl@gnu.org>
2607
2608 [cff] Fix typo.
2609
2610 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
2611 offsets in third quadrant.
2612
2613 Reported by maks <maksqwe1@ukr.net>.
2614
Werner Lemberg4e754132014-07-17 17:34:49 +090026152014-07-17 Werner Lemberg <wl@gnu.org>
2616
2617 Fix Savannah bug #42788.
2618
2619 * src/pfr/pfrobjs.c: Include `ftcalc.h'.
2620
Alexei Podtelezhnikovc0a6f202014-07-16 22:05:56 -040026212014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
2622
2623 Replace `ft_highpow2' function.
2624
2625 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
2626 `ft_highpow2'.
2627
2628 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
2629 it.
2630
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -040026312014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2632
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002633 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
Alexei Podtelezhnikov177982e2014-07-15 23:54:34 -04002634
26352014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2636
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -04002637 [base] Move assembler code back in the source file.
2638
2639 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
2640
2641 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2642 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
2643
2644 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
2645
26462014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikov1183cd42014-07-14 22:30:55 -04002647
2648 [base] Further clean up color bitmap conversion.
2649
2650 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
2651 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
2652
Werner Lemberg441b3f32014-07-13 02:28:14 +090026532014-07-13 Werner Lemberg <wl@gnu.org>
2654
2655 [truetype] Improve handling of buggy `prep' tables.
2656
2657 In case of an error in the `prep' table, no longer try to execute it
2658 again and again. This makes FreeType handle endless loops in buggy
2659 fonts much faster.
2660
2661 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
2662 and `cvt_ready' are now negative if not initialized yet, otherwise
2663 they indicate the error code of the last run.
2664
2665 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
2666 tt_size_done_bytecode, tt_size_init_bytecode,
2667 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
2668 Updated.
2669
2670 * src/truetype/ttgload.c (tt_loader_init): Updated.
2671 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
2672 and `prep' only if we are in the `glyf' table.
2673
Werner Lemberge98e2bc2014-07-12 16:37:39 +090026742014-07-12 Werner Lemberg <wl@gnu.org>
2675
2676 * builds/vms/ftconfig.h: Synchronize.
2677 Problem reported by Alexei.
2678
Alexei Podtelezhnikov35576bf2014-07-11 22:40:34 -040026792014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2680
2681 [base] Clean up bitmap conversion.
2682
2683 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
2684 appropriate FT_DivFix and remove superfluous upscaling.
2685
Alexei Podtelezhnikovceab95a2014-07-04 23:01:32 -040026862014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
2687
2688 [base] Small optimization of the ancient code.
2689
2690 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
2691 condition for direct 32-bit calculations.
2692
Werner Lemberg38975562014-06-27 06:55:56 +020026932014-06-27 Werner Lemberg <wl@gnu.org>
2694
2695 Fix Apple standard glyph names.
2696
2697 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
2698 `tools/glnames.py'
2699
2700 Problem reported by Adam Twardoch <adam@fontlab.com>.
2701
Werner Lembergcf2347c2014-06-17 09:01:04 +020027022014-06-17 Werner Lemberg <wl@gnu.org>
2703
Werner Lemberg231171f2014-06-17 09:14:32 +02002704 Partially revert commit from 2014-06-13.
2705
2706 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
2707 declaration of `p_first' and `p_last' out of the loop.
2708
27092014-06-17 Werner Lemberg <wl@gnu.org>
2710
Werner Lembergcf2347c2014-06-17 09:01:04 +02002711 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
2712
2713 This simplifies cross-compiling.
2714
Werner Lemberg6497b9c2014-06-13 09:28:00 +020027152014-06-13 Werner Lemberg <wl@gnu.org>
2716
Werner Lemberge5c0fff2014-06-13 14:01:20 +02002717 Fix more compiler warnings.
2718 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2719
2720 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2721 Make integer constant unsigned.
2722
2723 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
2724 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
2725 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
2726 casts.
2727
27282014-06-13 Werner Lemberg <wl@gnu.org>
2729
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002730 Fix compiler warnings.
2731 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2732
2733 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002734 src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002735 `unsigned' issues.
2736
2737 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
2738 happy.
2739
2740 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
2741 for `fir'.
2742 Fix `signed' vs. `unsigned' issues.
2743
2744 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
2745 (WRITE_USHORT, WRITE_ULONG): Add proper casts.
2746
2747 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
2748
2749 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
2750 and `B2'.
2751
Alexey Petruchik02f21702014-05-16 08:09:43 +020027522014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
2753
2754 [cmake] Add option to build OS X framework.
2755
2756 * CMakeLists.txt: Update accordingly.
2757
2758 * builds/mac/freetype-Info.plist: New file.
2759
Pavel Koshevoy15da66a2014-05-13 07:33:48 +020027602014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
2761
2762 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
2763
Werner Lemberg07e7b8a2014-05-11 08:00:25 +020027642014-05-11 Werner Lemberg <wl@gnu.org>
2765
Werner Lembergfaa21472014-05-11 12:44:00 +02002766 [autofit] Fix variable initializations.
2767
2768 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
2769 values to `in_dir' and `out_dir' for all points.
2770
27712014-05-11 Werner Lemberg <wl@gnu.org>
2772
Werner Lemberg07e7b8a2014-05-11 08:00:25 +02002773 [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
2774
2775 Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
2776
2777 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
2778 finding first non-near point.
2779 Properly initialize non-near point deltas.
2780
Werner Lemberg63bef9a2014-05-01 07:16:05 +020027812014-05-01 Werner Lemberg <wl@gnu.org>
2782
Werner Lembergc576bb02014-05-01 17:24:19 +02002783 [autofit] Add blue-zone support for Devanagari.
2784
2785 This essentially moves the Devanagari script from the `Indic' hinter
2786 to the `Latin' hinter. Thanks to Girish Dalvi
2787 <girish.dalvi@gmail.com> for guidance with blue zone characters!
2788
2789 * src/autofit/afblue.dat: Add blue zone data for Devanagari.
2790
2791 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2792
2793 * src/autofit/afscript.h: Add Devanagari standard characters and
2794 move data out of AF_CONFIG_OPTION_INDIC block.
2795
2796 * src/autofit/afranges.c: Move Devanagari data out of
2797 AF_CONFIG_OPTION_INDIC block.
2798 Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
2799
2800 * src/autofit/afstyles.h: Update Devanagari data; in particular, use
2801 AF_WRITING_SYSTEM_LATIN.
2802
28032014-05-01 Werner Lemberg <wl@gnu.org>
2804
Werner Lemberg63bef9a2014-05-01 07:16:05 +02002805 [autofit] Fix handling of neutral blue zones in stems.
2806
2807 * src/autofit/afhints.h (AF_Edge_Flags): New value
2808 `AF_EDGE_NEUTRAL'.
2809
2810 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
2811 neutral blue zones with AF_EDGE_NEUTRAL.
2812 (af_latin_hint_edges): Skip neutral blue zones if necessary.
2813
Werner Lembergccfc4b42014-04-28 21:13:14 +020028142014-04-28 Werner Lemberg <wl@gnu.org>
2815
2816 [autofit] Introduce neutral blue zones to the latin module.
2817
2818 Such blue zones match either the top or the bottom of a contour. We
2819 need them for scripts where accent-like elements directly touch the
2820 base character (for example, some vowel signs in Devanagari, cf.
2821 U+0913 or U+0914).
2822
2823 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
2824 property.
2825
2826 * src/autofit/afblue.h: Regenerated.
2827
2828 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
2829 (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
2830
2831 * src/autofit/aflatin.c (af_latin_metrics_init_blues,
2832 af_latin_hints_compute_blue_edges): Handle neutral blue zones.
2833
Werner Lembergabb3fca2014-04-25 22:13:32 +020028342014-04-25 Werner Lemberg <wl@gnu.org>
2835
2836 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
2837
2838 Using input glyph coverage data is simply wrong.
2839
2840 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
2841 Mantas MikulÄ—nas <grawity@gmail.com>.
2842
Werner Lembergf1936372014-04-23 08:22:33 +020028432014-04-23 Werner Lemberg <wl@gnu.org>
2844
2845 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
2846
2847 This spot has been missed while introducing support for various
2848 drop-out modes years ago (including no drop-out mode, which this
2849 commit fixes).
2850
2851 Problem reported by Patrick Thomas <pthomas505@gmail.com>.
2852
Werner Lembergd9b44702014-04-22 07:33:07 +020028532014-04-22 Werner Lemberg <wl@gnu.org>
2854
2855 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
2856
Werner Lemberg98e510e2014-04-20 22:11:27 +020028572014-04-20 Werner Lemberg <wl@gnu.org>
2858
2859 [autofit] Fix Savannah bug #42148.
2860
2861 The adaptation of the cjk auto-hinter module to blue stringsets in
2862 2013-08-25 had three severe bugs. Mea culpa.
2863
2864 1. Contrary to the latin auto-hinter, characters for reference and
2865 overshoot values of a blue zone are specified separately. Due to
2866 the screwed-up change it didn't work at all.
2867
2868 2. A boolean comparison was erroneously replaced with a cast,
2869 causing invalid results with the `^' operator later on. The
2870 visual artifact caused by this problem is the topic of the bug
2871 report.
2872
2873 3. Two flag values were inverted, causing incorrect assignment of
2874 reference and overshoot values.
2875
2876 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
2877 syntax to have both reference and overshoot characters in a single
2878 string. This is error #1.
2879 Add extensive comments.
2880
2881 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
2882 longer used.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002883 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002884 This is error #3.
2885
2886 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2887
2888 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
2889 Use character `|' to separate characters for reference and overshoot
2890 values.
2891 Improve tracing messages, synchronizing them with the latin
2892 auto-hinter.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002893 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002894 This is error #2.
2895 (af_cjk_align_linked_edge): Add tracing message.
2896
2897 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
2898 used.
2899
Werner Lembergbbd83132014-04-17 01:24:36 +020029002014-04-17 Werner Lemberg <wl@gnu.org>
2901
Werner Lemberg8c7fb782014-04-17 15:53:25 +02002902 [autofit] More coverage fixes for complex scripts.
2903
2904 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
2905 of GSUB lookups into output coverage. Otherwise, ligatures are not
2906 handled properly.
2907 Don't check blue zone characters for default coverage.
2908
29092014-04-17 Werner Lemberg <wl@gnu.org>
2910
Werner Lembergbbd83132014-04-17 01:24:36 +02002911 Make `FT_Get_SubGlyph_Info' actually work.
2912
2913 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
2914 if there is no error.
2915
Werner Lemberg181fd072014-04-15 16:47:05 +020029162014-04-15 Werner Lemberg <wl@gnu.org>
2917
2918 [afblue.pl]: Minor improvements.
2919
2920 * src/tools/afblue.pl: Allow whitespace before comments.
2921 Ignore whitespace in strings.
2922
Werner Lemberg8b1f2a62014-04-14 07:58:19 +020029232014-04-14 Werner Lemberg <wl@gnu.org>
2924
2925 [autofit] Improve coverage handling.
2926
2927 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
2928 appearing in the GPOS table if we are processing the default
2929 coverage.
2930
David Weber76307872014-04-13 15:41:13 +020029312014-04-13 David Weber <weber.aulendorf@googlemail.com>
2932
2933 [smooth] Fix stand-alone compilation.
2934
2935 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
2936
Werner Lemberg8a94b1e2014-04-12 20:44:33 +020029372014-04-12 Werner Lemberg <wl@gnu.org>
2938
2939 [autofit] Redesign the recognition algorithm of strong points.
2940
2941 In particular, local extrema without horizontal or vertical segments
2942 are better recognized:
2943
2944 + A + D
2945 \ /
2946 \ /
2947 \ /
2948 \ /
2949 \ + C
2950 \ /
2951 B +/
2952
2953 If the distances AB and CD are large, point B wasn't previously
2954 detected as an extremum since the `ft_corner_is_flat' function
2955 `swallowed' BC regardless of its direction, tagging point B as weak.
2956 The next iteration started at B and made `ft_corner_is_flat' swallow
2957 point C, tagging it as weak also, et voilà.
2958
2959 To improve that, another pass gets now performed before calling
2960 `ft_corner_is_flat' to improve the `topology' of an outline: A
2961 sequence of non-horizontal or non-vertical vectors that point into
2962 the same quadrant are handled as a single, large vector.
2963
2964 Additionally, distances of near points are now accumulated, which
2965 makes the auto-hinter handle them as if they were prepended to the
2966 next non-near vector.
2967
2968 This generally improves the auto-hinter's rendering results.
2969
2970 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
2971
2972 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
2973 `AF_FLAG_NEAR'.
2974
Werner Lemberg71f53e12014-04-05 16:27:19 +020029752014-04-05 Werner Lemberg <wl@gnu.org>
2976
2977 [autofit] Improve scoring algorithm for identifying stems.
2978
2979 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
2980
2981 The new algorithm takes care of the width of stems: If the distance
2982 between two segments is larger than the largest stem width, the
2983 demerits quickly increase for larger distances. This improves
2984 hinting of slanted fonts (especially if the inner parts of serifs
2985 have non-horizontal `shoulders'), avoiding false stem links.
2986
2987 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
2988 stem width (if available) to compute better demerits for distances
2989 between stems.
2990 (af_latin_hints_detect_features): Pass stem width array and array
2991 size.
2992 (af_latin_metrics_init_widths): Updated to use original algorithm.
2993 (af_latin_hints_apply): Updated to use new algorithm.
2994
2995 * src/autofit/aflatin.h: Updated.
2996 * src/autofit/afcjk.c: Updated.
2997
Werner Lembergf8555b52014-04-03 05:45:38 +020029982014-04-03 Werner Lemberg <wl@gnu.org>
2999
3000 Don't require `gzip' module for `sfnt'.
3001
3002 Reported by Preet <prismatic.project@gmail.com>.
3003
3004 * src/sfnt/sfobjs.c (woff_open_font): Guard use of
3005 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
3006
Werner Lembergf41070f2014-03-27 17:38:23 +010030072014-03-27 Werner Lemberg <wl@gnu.org>
3008
3009 Fix Savannah bug #38235.
3010
3011 Work around a bug in pkg-config version 0.28 and earlier: If a
3012 variable value gets surrounded by doublequotes (in particular values
3013 for the `prefix' variable), the prefix override mechanism fails.
3014
3015 * builds/unix/freetype2.in: Don't use doublequotes.
3016 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
3017 names with backslashes.
3018
Werner Lembergab76d972014-03-24 19:45:03 +010030192014-03-24 Werner Lemberg <wl@gnu.org>
3020
3021 Fix Savannah bug #41946.
3022
3023 Based on a patch from Marek Kašík <mkasik@redhat.com>.
3024
3025 * builds/unix/configure.raw (LIBS_CONFIG): Remove.
3026 * builds/unix/freetype-config.in (libs): Hard-code value.
3027 * builds/unix/unix-def.in: Updated.
3028
Werner Lembergd5159922014-03-22 06:20:54 +010030292014-03-22 Werner Lemberg <wl@gnu.org>
3030
3031 Another revert for the change from 2014-03-18.
3032
3033 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
3034
3035 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
3036 gets always exported.
3037
Werner Lembergf0c471a2014-03-20 07:13:12 +010030382014-03-20 Werner Lemberg <wl@gnu.org>
3039
3040 CMakeLists.txt: Another fix for include directories.
3041
3042 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
3043
Werner Lembergcc7cf2c2014-03-19 07:35:35 +010030442014-03-19 Werner Lemberg <wl@gnu.org>
3045
Werner Lemberg606c74f2014-03-19 23:46:42 +01003046 CMakeLists.txt: Fix include directories.
3047
3048 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
3049
30502014-03-19 Werner Lemberg <wl@gnu.org>
3051
Werner Lembergcc7cf2c2014-03-19 07:35:35 +01003052 Partially revert last commit.
3053
3054 Found by Alexei.
3055
3056 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
3057 those variables is plain wrong, since we are in a loop.
3058
Sean McBride87628722014-03-18 08:39:35 +010030592014-03-18 Sean McBride <sean@rogue-research.com>
3060 Werner Lemberg <wl@gnu.org>
3061
3062 Fix clang warnings.
3063
3064 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
3065 some variables.
3066
3067 * src/base/ftcalc.c (FT_MulFix): Only use code if
3068 `FT_MULFIX_INLINED' is not defined.
3069
3070 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
3071 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
3072 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
3073 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
3074 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
3075 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
3076 function static.
3077
3078 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
3079 code.
3080
Werner Lemberg23367ff2014-03-17 07:33:14 +010030812014-03-17 Werner Lemberg <wl@gnu.org>
3082
3083 Fix Savannah bug #41869.
3084
3085 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
3086 validate glyph indices returned by
3087 `hb_ot_layout_lookup_collect_glyphs'.
3088
3089 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
3090
3091 * docs/CHANGES: Updated.
3092
Werner Lemberg03181682014-03-14 08:06:06 +010030932014-03-14 Werner Lemberg <wl@gnu.org>
3094
3095 * builds/unix/configure.raw: Don't show error messages of `which'.
3096
Alan Coopersmithed372b72014-03-09 06:14:12 +010030972014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
3098
3099 Fix cppcheck 1.64 warning.
3100
3101 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
3102 dereference in case of error.
3103
Werner Lemberg1a69dc72014-03-09 06:06:58 +010031042014-03-09 Sean McBride <sean@rogue-research.com>
3105
3106 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
3107
Werner Lemberg05565362014-03-06 18:56:58 +010031082014-03-06 Werner Lemberg <wl@gnu.org>
3109
Werner Lembergec8853c2014-03-06 19:13:45 +01003110 * Version 2.5.3 released.
3111 =========================
3112
3113
3114 Tag sources with `VER-2-5-3'.
3115
3116 * docs/VERSION.DLL: Update documentation and bump version number to
3117 2.5.3.
3118
3119 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3120 builds/windows/vc2005/index.html,
3121 builds/windows/vc2008/freetype.vcproj,
3122 builds/windows/vc2008/index.html,
3123 builds/windows/vc2010/freetype.vcxproj,
3124 builds/windows/vc2010/index.html,
3125 builds/windows/visualc/freetype.dsp,
3126 builds/windows/visualc/freetype.vcproj,
3127 builds/windows/visualc/index.html,
3128 builds/windows/visualce/freetype.dsp,
3129 builds/windows/visualce/freetype.vcproj,
3130 builds/windows/visualce/index.html,
3131 builds/wince/vc2005-ce/freetype.vcproj,
3132 builds/wince/vc2005-ce/index.html,
3133 builds/wince/vc2008-ce/freetype.vcproj,
3134 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
3135
3136 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
3137
3138 * builds/unix/configure.raw (version_info): Set to 17:2:11.
3139 * CMakeLists.txt (VERSION_PATCH): Set to 3.
3140 * docs/CHANGES: Updated.
3141
31422014-03-06 Werner Lemberg <wl@gnu.org>
3143
Werner Lemberg05565362014-03-06 18:56:58 +01003144 Fixes for compilation with C++.
3145
3146 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
3147 (af_get_coverage): Updated.
3148 (COVERAGE): Add cast.
3149
Sean McBrideb24e8d32014-03-06 14:54:22 +010031502014-03-06 Sean McBride <sean@rogue-research.com>
3151
3152 Remove more clang analyzer warnings.
3153
3154 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
3155 (TT_Load_Glyph): Remove dead stores.
3156
Werner Lemberga32758f2014-03-05 08:02:46 +010031572014-03-05 Werner Lemberg <wl@gnu.org>
3158
3159 * builds/unix/configure.raw: Simplify.
3160
suzuki toshiya382f3ef2014-03-05 10:19:15 +090031612014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3162
3163 Fix a bug in configure in library dependency setting
Werner Lemberga32758f2014-03-05 08:02:46 +01003164 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
suzuki toshiya382f3ef2014-03-05 10:19:15 +09003165
3166 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
3167
Werner Lembergf48f7dc2014-03-04 04:40:07 +010031682014-03-04 Werner Lemberg <wl@gnu.org>
3169
3170 Minor fix for `make devel'.
3171
3172 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
3173 pkg-config for bzip2 since not all GNU/Linux distributions have
3174 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
3175 normally).
3176
Werner Lemberg7ac76b52014-03-04 04:29:17 +010031772014-03-04 Sean McBride <sean@rogue-research.com>
3178
3179 Fix several clang static analyzer dead store warnings.
3180
3181 * src/autofit/afhints.c (af_glyph_hints_reload,
3182 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
3183
3184 * src/bdf/bdflib.c (bdf_font_load): Ditto.
3185
3186 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
3187 psh_glyph_interpolate_other_points): Ditto.
3188
3189 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
3190
Werner Lemberg93ebcbd2014-03-03 07:13:45 +010031912014-03-03 Werner Lemberg <wl@gnu.org>
3192
3193 Rewrite library option handling in `configure'.
3194
3195 o Introduce `auto' value for `--with-XXX' library options; this is
3196 now the default.
3197
3198 o First use `pkg-config' for library detection, then fall back to
3199 other tests.
3200
3201 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
3202 --with-harfbuzz): Rewrite.
3203 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
3204 variables to collect data for `freetype2.pc' and `freetype-config'.
3205 (FT2_EXTRA_LIBS): Renamed to ...
3206 (ft2_extra_libs): This since it gets no longer substituted.
3207 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
3208 New output variables, replacing `XXX_PKG' and `LIBXXX'.
3209 Add notice at the end of `configure' showing the library
3210 configuration.
3211
3212 * builds/unix/freetype-config.in (--static): New command line
3213 option.
3214 (libs): Updated.
3215 (staticlibs): New variable, to be used if `--static' is given.
Werner Lemberg8fa69a82014-12-03 20:07:14 +01003216 * docs/freetype-config.1: Document `--static'.
Werner Lemberg93ebcbd2014-03-03 07:13:45 +01003217
3218 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
3219
Werner Lemberg86026a42014-03-01 06:57:19 +010032202014-03-01 Werner Lemberg <wl@gnu.org>
3221
Werner Lemberge962a912014-03-01 21:00:02 +01003222 Avoid `long long' warnings with older gcc compilers.
3223 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3224
3225 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
3226 versions < 4.6. This is especially needed for Max OS X since this
3227 OS runs a gcc variant (or emulation) based on version 4.2.1.
3228
32292014-03-01 Werner Lemberg <wl@gnu.org>
3230
Werner Lemberg6030a9f2014-03-01 14:01:12 +01003231 * docs/INSTALL.CROSS: Revised and updated.
3232
32332014-03-01 Werner Lemberg <wl@gnu.org>
3234
Werner Lemberg646db052014-03-01 12:48:07 +01003235 Make `make clean' remove `freetype2.pc'.
3236
3237 This is a generated file at build time, not configure time.
3238
3239 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
3240 (CLEAN): This variable.
3241
32422014-03-01 Werner Lemberg <wl@gnu.org>
3243
Werner Lemberg00c79ed2014-03-01 12:32:20 +01003244 Use pkg-config for detecting libpng and libbz2 also.
3245
3246 * builds/unix/configure.raw (HAVE_PKG): New variable.
3247 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
3248 Search for libpng using `pkg-config'.
3249 Fix definition of `LIBHARFBUZZ' variable.
3250 * builds/unix/freetype-config.in ($libs): Updated.
3251 * builds/unix/freetype2.in: Add `URL' field.
3252 Update `Requires.private' and `Libs.private'.
3253 * builds/unix/unix-def.in: Updated.
3254
32552014-03-01 Werner Lemberg <wl@gnu.org>
3256
Werner Lemberg86026a42014-03-01 06:57:19 +01003257 Add configure support for HarfBuzz.
3258
3259 * builds/unix/pkg.m4: New file.
3260 * builds/unix/configure.raw: Search for libharfbuzz using
3261 `pkg-config'.
3262 Add `--without-harfbuzz' option.
3263 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
3264 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
3265 HarfBuzz.
3266
3267 * docs/INSTALL.UNIX: Document interdependency of Freetype with
3268 HarfBuzz.
3269
Alexei Podtelezhnikov6adda682014-02-28 09:24:26 +010032702014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
3271
3272 [cff] Math simplifications.
3273
3274 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
3275 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
3276
Dave Arnold0eae6eb2014-02-28 07:40:01 +010032772014-02-28 Dave Arnold <darnold@adobe.com>
3278
Dave Arnold135c3fa2014-02-28 07:42:42 +01003279 [cff] Fix Savannah bug #41697, part 2.
3280
3281 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
3282 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
3283 a subroutine if no subroutines exist. This is an error but should
3284 not trigger an assert. Split the assert to account for this.
3285
32862014-02-28 Dave Arnold <darnold@adobe.com>
3287
Dave Arnold0eae6eb2014-02-28 07:40:01 +01003288 [cff] Fix Savannah bug #41697, part 1.
3289
3290 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
3291 invalid. In this case, it is not safe to use the length of
3292 `hStemHintArray'; the exception has already been recorded in
3293 `hintMask'.
3294
Werner Lembergeee4ff82014-02-26 18:12:36 +010032952014-02-26 Werner Lemberg <wl@gnu.org>
3296
Werner Lemberga2b5f662014-02-26 19:50:18 +01003297 [sfnt] Fix Savannah bug #41696.
3298
3299 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
3300 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
3301
33022014-02-26 Werner Lemberg <wl@gnu.org>
3303
Werner Lembergeee4ff82014-02-26 18:12:36 +01003304 [winfnt] Fix Savannah bug #41694.
3305
3306 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
3307
33082014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg9a567642014-02-26 13:08:07 +01003309
Werner Lemberg08c628d2014-02-26 14:18:03 +01003310 [cff] Fix Savannah bug #41693.
3311
3312 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
3313
Werner Lembergeee4ff82014-02-26 18:12:36 +010033142014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg08c628d2014-02-26 14:18:03 +01003315
Werner Lemberg9a567642014-02-26 13:08:07 +01003316 [bdf] Fix Savannah bug #41692.
3317
3318 bdflib puts data from the input stream into a buffer in chunks of
3319 1024 bytes. The data itself gets then parsed line by line, simply
3320 increasing the current pointer into the buffer; if the search for
3321 the final newline character exceeds the buffer size, more data gets
3322 read.
3323
3324 However, in case the current line's end is very near to the buffer
3325 end, and the keyword to compare with is longer than the current
3326 line's length, an out-of-bounds read might happen since `memcmp'
3327 doesn't stop properly at the string end.
3328
3329 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
3330 stop at string ends.
3331
suzuki toshiya91c7a972014-02-17 16:38:31 +090033322014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3333
3334 [autofit] Fix `make multi' compilation.
3335
suzuki toshiyacc9a0c22014-02-17 16:43:54 +09003336 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
suzuki toshiya91c7a972014-02-17 16:38:31 +09003337
Werner Lemberg6b290fd2014-02-19 09:26:54 +010033382014-02-19 Werner Lemberg <wl@gnu.org>
3339 Simon Bünzli <zeniko@gmail.com>
3340
3341 Fix Savannah bug #32902.
3342
3343 Patch taken from
3344
3345 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
3346
3347 with slight modifications.
3348
3349 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
3350 handle fonts that incorrectly use \r at the beginning of an eexec
3351 block.
3352
Simon Bünzlidf14e6c2014-02-19 08:42:52 +010033532014-02-19 Simon Bünzli <zeniko@gmail.com>
3354
3355 Fix Savannah bug #41590.
3356
3357 * src/type1/t1load.c (parse_encoding): Protect against invalid
3358 number.
3359
Dave Arnold89a94d42014-02-12 23:45:47 +010033602014-02-12 Dave Arnold <darnold@adobe.com>
3361
3362 [cff] Optimize by using `FT_MulDiv'.
3363 Suggested by Alexei.
3364
3365 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
3366
Werner Lemberg85ee27a2014-02-12 23:27:41 +010033672014-02-12 Werner Lemberg <wl@gnu.org>
3368
3369 Fix Savannah bug #41465.
3370
3371 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
3372 (DISTCLEAN): Remove `freetype-config'.
3373
Sean McBride7be2a942014-02-08 13:55:38 +010033742014-02-08 Sean McBride <sean@rogue-research.com>
3375
3376 Fix clang static analyzer and compiler warnings.
3377
3378 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
3379 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
3380 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
3381 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
3382 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
3383 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
3384 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
3385 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
3386 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
3387 code.
3388
3389 * src/autofit/afmodule.c (af_property_get_face_globals,
3390 af_property_set, af_property_get), src/base/ftbitmap.c
3391 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
3392
3393 * src/base/ftobjs.c (ft_remove_renderer): Protect against
3394 library == NULL.
3395 (ft_property_do): Make function static.
3396
3397 * src/base/ftrfork.c: Include `ftbase.h'.
3398
3399 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
3400 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
3401 (T1_Compute_Max_Advance): Avoid compiler warning.
3402
3403 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
3404 variable.
3405
Werner Lembergab98c5e2014-02-08 11:34:33 +010034062014-02-08 Werner Lemberg <wl@gnu.org>
3407
3408 Fix Windows build directories.
3409
3410 The build target is now `windows' instead of `win32'.
3411
3412 Problem reported by Nickolas George <darknova.clan@gmail.com>.
3413
3414 * builds/modules.mk: Don't use `win32' and `win16' (!) but
3415 `windows'.
3416
3417 * builds/windows/detect.mk, builds/windows/win32-def.mk:
3418 s/win32/windows/.
3419
Eugen Sawina8ceae42014-02-08 06:30:06 +010034202014-02-08 Eugen Sawin <esawin@mozilla.com>
3421
3422 Fix Savannah bug #41507.
3423
3424 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
3425 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
3426
Dave Arnold355b3592014-02-08 06:23:04 +010034272014-02-08 Dave Arnold <darnold@adobe.com>
3428
3429 [cff] Fix minor performance bug.
3430
3431 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
3432 calculations are now cached and not recomputed on each glyph.
3433
Werner Lemberg6dce1362014-02-05 15:40:47 +010034342014-02-05 Werner Lemberg <wl@gnu.org>
3435
3436 Fix problems with perl 5.8.8 as distributed with current MinGW.
3437
3438 * src/tools/afblue.pl: Work-around for Perl bug #63402.
3439 (string_re): Avoid `possessive quantifiers', which have been
3440 introduced in Perl version 5.10.
3441
Werner Lemberga8772912014-02-04 11:36:08 +010034422014-02-04 Werner Lemberg <wl@gnu.org>
3443
Werner Lembergd87f9a62014-02-04 16:14:09 +01003444 Fix compilation with MinGW.
3445
3446 Right now, compilation out of the box with latest MinGW is broken
3447 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
3448 cf.
3449
3450 https://sourceforge.net/p/mingw/bugs/2024/
3451 https://sourceforge.net/p/mingw/bugs/2046/
3452
3453 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
3454
34552014-02-04 Werner Lemberg <wl@gnu.org>
3456
Werner Lemberga8772912014-02-04 11:36:08 +01003457 [autofit] Minor fix.
3458
3459 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3460 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
3461 of alternative standard characters.
3462 This also fixes a compilation warning in non-debug mode.
3463
Werner Lembergee3778d2014-02-03 11:16:47 +010034642014-02-03 Werner Lemberg <wl@gnu.org>
3465
3466 [cff] Fix Savannah bug #41363.
3467
3468 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
3469 parameter check.
3470 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
3471 we are scaling the outline.
3472 (cf2_getPpemY): Remove problematic assertion.
3473
Werner Lemberga3364002014-01-26 09:45:23 +010034742014-01-26 Werner Lemberg <wl@gnu.org>
3475
3476 [autofit] Introduce two more slots for standard characters.
3477
3478 This is useful for OpenType features like `c2sc' (caps to small
3479 caps) that don't have lowercase letters by definition, or other
3480 features that mainly operate on numerals.
3481
3482 * src/autofit/afscript.h: Add more standard characters.
3483
3484 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
3485 (AF_ScriptClassRec): Add members to hold two more standard
3486 characters.
3487 (AF_DEFINE_SCRIPT_CLASS): Updated.
3488
3489 * src/autofit/afglobal.c, src/autofit/afglobal.h,
3490 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
3491 Update use of `SCRIPT' macro.
3492
3493 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3494 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
3495 standard characters.
3496
Werner Lembergeb7691c2014-01-24 19:04:22 +010034972014-01-24 Werner Lemberg <wl@gnu.org>
3498
3499 Fix Savannah bug #41320.
3500
3501 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
3502 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
3503
Werner Lemberg8b281f82014-01-23 08:14:53 +010035042014-01-23 Werner Lemberg <wl@gnu.org>
3505
Werner Lemberg752f3912014-01-23 09:14:25 +01003506 Fix Savannah bug #41310.
3507
3508 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
3509 Don't check metrics, which this format doesn't have.
3510 This is another correction to the commit from 2013-11-21.
3511
35122014-01-23 Werner Lemberg <wl@gnu.org>
3513
Werner Lemberg8b281f82014-01-23 08:14:53 +01003514 Fix Savannah bug #41309.
3515
3516 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
3517 of `T1_ToFixedArray'.
3518
3519 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
3520 `t1_parse_font_matrix'.
3521
3522 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
3523 `t1_parse_font_matrix'.
3524 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
3525
3526 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
3527 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
3528
Werner Lembergff8dc312014-01-22 09:19:57 +010035292014-01-22 Werner Lemberg <wl@gnu.org>
3530
3531 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
3532
Werner Lemberg6a700782014-01-16 08:55:40 +010035332014-01-16 Werner Lemberg <wl@gnu.org>
3534
3535 [autofit] Improve tracing of style coverages.
3536
3537 * include/internal/fttrace.h: Add `afglobal' for tracing style
3538 coverages.
3539
3540 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
3541 (FT_COMPONENT): Define.
3542 (af_face_globals_compute_style_coverage): Trace `gstyles' array
3543 data.
3544
Werner Lemberg7cbfdff2014-01-09 07:26:06 +010035452014-01-09 Werner Lemberg <wl@gnu.org>
3546
3547 Fix Savannah bug #41158.
3548
3549 * builds/unix/install.mk (install): Create man page directory.
3550
Chongyu Zhu94c66942014-01-08 08:52:59 +010035512014-01-08 Chongyu Zhu <lembacon@gmail.com>
3552
3553 [arm] Fix Savannah bug #41138, part 2.
3554
3555 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
3556 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
3557 preprocessor conditionals for `add.w'.
3558
Werner Lembergc46fa862014-01-08 08:45:40 +010035592014-01-08 Werner Lemberg <wl@gnu.org>
3560
3561 [autofit] Fix Savannah bug #41138, part 1.
3562
3563 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
3564 enumeration names for generated `#else'.
3565
3566 * src/autofit/afblue.h: Regenerated.
3567
Werner Lemberg3e5a3742014-01-06 07:53:10 +010035682014-01-06 Werner Lemberg <wl@gnu.org>
3569
3570 Add manual page for `freetype-config'.
3571 Contributed by Nis Martensen <nis.martensen@web.de>.
3572
3573 * docs/freetype-config.1: New file.
3574
3575 * builds/unix/unix-def.in (mandir): Define.
3576 * builds/unix/install.mk (install, uninstall): Handle manpage.
3577
Werner Lemberg991cbcc2014-01-05 13:24:56 +010035782014-01-05 Werner Lemberg <wl@gnu.org>
3579
3580 [autofit] Minor fixes for `afblue.pl'.
3581
3582 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
3583 <Handling #endif>: Use proper indentation for generated `#else'.
3584
3585 * src/autofit/afblue.h: Regenerated.
3586
Werner Lemberg0d977442014-01-04 11:46:34 +010035872014-01-04 Werner Lemberg <wl@gnu.org>
3588
3589 [autofit] Fix Indic scripts.
3590
3591 Split the single, incorrect Indic entry into separate scripts so
3592 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
3593 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
3594 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
3595 entries for Meetai Mayak and Sharada – the Unicode ranges were
3596 incorrect (and nobody has complained about that), fonts are scarce
3597 for those scripts, and the Indic auto-hinter support is rudimentary
3598 anyways.
3599
3600 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
3601 AF_CONFIG_OPTION_CJK.
3602
3603 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
3604 Use it, together with AF_CONFIG_OPTION_INDIC and
3605 AF_CONFIG_OPTION_CJK, to update.
3606
3607 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
3608 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
3609 Sort entries by tags.
3610
Werner Lemberg5c7f5502014-01-03 10:48:26 +010036112014-01-03 Werner Lemberg <wl@gnu.org>
3612
Werner Lembergecdb0e32014-01-03 20:49:31 +01003613 [autofit] Thinko.
3614
3615 * src/autofit/hbshim.c (af_get_char_index): Similar to
3616 `af_get_coverage', reject glyphs which are not substituted.
3617
36182014-01-03 Werner Lemberg <wl@gnu.org>
3619
Werner Lemberga42f9182014-01-03 18:29:41 +01003620 [autofit] Fix handling of default coverages.
3621
Werner Lemberg1b5bc892014-01-03 18:33:24 +01003622 With this commit, the implementation of coverage handling is
3623 completed.
3624
3625 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
3626 do.
3627 Reject coverages which don't contain appropriate glyphs for blue
3628 zones.
3629
36302014-01-03 Werner Lemberg <wl@gnu.org>
3631
3632 [autofit] Fix handling of default coverages.
3633
Werner Lemberga42f9182014-01-03 18:29:41 +01003634 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3635 First handle non-default coverages, then the default coverage of the
3636 default script, and finally the other default coverages.
3637
36382014-01-03 Werner Lemberg <wl@gnu.org>
3639
Werner Lembergf45749b2014-01-03 18:09:36 +01003640 [autofit] Fix scaling of HarfBuzz shaping.
3641
3642 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
3643
36442014-01-03 Werner Lemberg <wl@gnu.org>
3645
Werner Lemberg5c7f5502014-01-03 10:48:26 +01003646 [autofit] Better ftgrid support.
3647
3648 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
3649 parameters `is_blue' and `blue_offset'.
3650
Werner Lemberg73cc8332014-01-01 07:10:36 +010036512014-01-01 Werner Lemberg <wl@gnu.org>
3652
Werner Lemberg55cd7e02014-01-02 13:07:48 +01003653 [autofit] Remove some styles.
3654
3655 * src/autofit/afcover.h: Remove coverages for alternative fractions,
3656 denominators, numerators, and fractions.
3657
3658 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
3659
36602014-01-01 Werner Lemberg <wl@gnu.org>
3661
Werner Lembergc973e672014-01-01 16:34:42 +01003662 [autofit] Add more styles.
3663
3664 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
3665 auxiliary macros; use them to define styles for Cyrillic, Greek, and
3666 Latin.
3667
3668 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
3669 Since those digits are used in combination with ordinary letters, it
3670 makes no sense to handle them separately.
3671
3672 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
3673 `options' parameter to 4 bits.
3674
36752014-01-01 Werner Lemberg <wl@gnu.org>
3676
Werner Lembergabb2f732014-01-01 08:00:16 +01003677 [autofit] Fix style assignments to glyphs.
3678
3679 * src/autofit/hbshim.c (af_get_coverage)
3680 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
3681 so that we can skip glyphs that have both GSUB and GPOS data.
3682
36832014-01-01 Werner Lemberg <wl@gnu.org>
3684
Werner Lemberg0950f3a2014-01-01 07:48:20 +01003685 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
3686
36872014-01-01 Werner Lemberg <wl@gnu.org>
3688
Werner Lemberg73cc8332014-01-01 07:10:36 +01003689 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
3690
3691 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
3692 Redefine to construct HarfBuzz features.
3693 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
3694
3695 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
3696 `y_offset' to adjust `best_y'.
3697
Werner Lembergc9d99472013-12-31 08:16:57 +010036982013-12-31 Werner Lemberg <wl@gnu.org>
3699
Werner Lemberg785f3852013-12-31 09:45:10 +01003700 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
3701
37022013-12-31 Werner Lemberg <wl@gnu.org>
3703
Werner Lembergc9d99472013-12-31 08:16:57 +01003704 [autofit] Fix interface of `af_get_char_index'.
3705
3706 * src/autofit/hbshim.c (af_get_char_index): Return error value.
3707 Add argument for y offset (to be used in a yet-to-come patch).
3708
3709 * src/autofit/hbshim.h, src/autofit/afcjk.c,
3710 src/autofit/aflatin.c: Updated.
3711
Werner Lemberg44aa7e02013-12-30 07:41:22 +010037122013-12-30 Werner Lemberg <wl@gnu.org>
3713
3714 [autofit] Don't combine multiple features into one set.
3715
3716 Combining them, as originally envisioned, would lead to much more
3717 complicated code, as investigations have shown meanwhile. The major
3718 drawback is that we run out of available style slots much earlier.
3719 However, this is only a theoretical issue since we don't support a
3720 large number of scripts currently.
3721
3722 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
3723 a single-element `COVERAGE' macro, sort the elements by the feature
3724 tags, and add entry for `ruby'.
3725
3726 * src/autofit/aftypes.h: Updated.
3727 * src/autofit/hbshim.c: Updated.
3728
Werner Lemberg6af01a02013-12-28 08:55:24 +010037292013-12-28 Werner Lemberg <wl@gnu.org>
3730
Werner Lemberg072dc452013-12-28 12:26:21 +01003731 [autofit] Code shuffling to reduce use of cpp macros.
3732
3733 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3734 Call `af_get_coverage' unconditionally.
3735
3736 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
3737
3738 * src/autofit/hbshim.c (af_get_coverage)
3739 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
3740
3741 * src/autofit/hbshim.h: Provide function declarations
3742 unconditionally.
3743
37442013-12-28 Werner Lemberg <wl@gnu.org>
3745
Werner Lemberg17af5862013-12-28 10:33:01 +01003746 [autofit] Add wrapper function for `FT_Get_Char_Index'.
3747
3748 Yet-to-come changes will provide HarfBuzz functionality for the new
3749 function.
3750
3751 * src/autofit/hbshim.c (af_get_char_index): New function.
3752 * src/autofit/hbshim.h: Updated.
3753
3754 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3755 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
3756
3757 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
3758 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
3759 Updated.
3760
37612013-12-28 Werner Lemberg <wl@gnu.org>
3762
Werner Lemberg6af01a02013-12-28 08:55:24 +01003763 [autofit] Use `global' HarfBuzz font object.
3764
3765 We now use `hb_font' instead of `hb_face' since yet-to-come changes
3766 need this.
3767
3768 * src/autofit/afglobal.h: Include `hbshim.h'.
3769 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
3770 `hb_font'.
3771
3772 * src/autofit/afglobal.c (af_face_globals_new)
3773 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
3774 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
3775 `hb_font'.
3776
3777 * src/autofit/hbshim.h: Include HarfBuzz headers.
3778
3779 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
3780 headers.
3781 (af_get_coverage): Updated.
3782
Werner Lembergd32a7d32013-12-27 19:26:04 +010037832013-12-27 Werner Lemberg <wl@gnu.org>
3784
3785 [autofit] Handle `DFLT' OpenType script for coverages.
3786
3787 * include/ftautoh.h: Document new `default-script' property.
3788
3789 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
3790 type of first parameter.
3791 (script_tags): Add one more element.
3792 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
3793
3794 * src/autofit/hbshim.h: Updated.
3795
3796 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3797 Updated.
3798
3799 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
3800
3801 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
3802 member.
3803
3804 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
3805 `default-script' property.
3806 (af_autofitter_init): Updated.
3807
suzuki toshiyae2d2b152013-12-27 16:44:24 +090038082013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3809
3810 [ftrfork] Fix the face order difference between POSIX and Carbon.
3811
3812 The fragmented resources in Suitcase and .dfont should be reordered
Werner Lemberg00a7b512013-12-27 19:18:49 +01003813 when `POST' resource for Type1 is being restored, but reordering of
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003814 sfnt resources induces the different face order. Now the ordering
Werner Lemberg00a7b512013-12-27 19:18:49 +01003815 is restricted to `POST' resource only, to prevent the different
3816 order issue (e.g. the face index in the fontconfig cache generated
3817 with Carbon framework is incompatible with that by FreeType 2
3818 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
3819
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003820 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
3821 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
3822
3823 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
Werner Lemberg44aa7e02013-12-30 07:41:22 +01003824 `sort_by_res_id' to control the fragmented resource ordering.
Werner Lemberg00a7b512013-12-27 19:18:49 +01003825 * include/internal/ftrfork.h: Declare new switch.
3826 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
3827 resource, and disable the sorting for `sfnt' resource.
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003828
Werner Lemberg5f577462013-12-25 08:50:50 +010038292013-12-25 Werner Lemberg <wl@gnu.org>
3830
3831 Fix Savannah bug #40997.
3832
3833 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
3834 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
3835 be set.
3836 * src/cff/cffobjs.c (cff_face_init): Ditto.
3837 * src/cid/cidobjs.c (cid_face_init): Ditto.
3838 * src/pcf/pcfread.c (pcf_load_font): Ditto.
3839 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
3840 * src/type1/t1objs.c (T1_Face_Init): Ditto.
3841 * src/type42/t42objs.c (T42_Face_Init): Ditto.
3842 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
3843
Werner Lembergc4e968e2013-12-21 07:23:08 +010038442013-12-21 Werner Lemberg <wl@gnu.org>
3845
Werner Lemberg19241342013-12-21 21:31:38 +01003846 [autofit] Introduce `coverages'.
3847
3848 Coverages are the interface to the HarfBuzz library to acces
3849 OpenType features for handling glyphs not addressable by the cmap.
3850
3851 Right now, compilation of HarfBuzz is only added to the development
3852 build. A solution for standard build mode will be delayed until
3853 HarfBuzz gets split into two libraries to avoid mutual dependencies
3854 between FreeType and HarfBuzz.
3855
3856 Note that this is only a first step in handling coverages, basically
3857 providing the framework only. Code for handling selected OpenType
3858 features (this is, actually using the data in `afcover.h') will
3859 follow.
3860
3861 * devel/ftoption.h, include/config/ftoption.h
3862 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
3863
3864 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
3865 New files.
3866
3867 * src/autofit/afscript.h: Add HarfBuzz script name tags.
3868
3869 * src/autofit/afstyles.h: Add default coverage enumeration values.
3870
3871 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
3872 (AF_Coverage): New enumeration (generated by `afcover.h').
3873 (AF_StyleClassRec): New member `coverage'.
3874 (AF_DEFINE_STYLE_CLASS): Updated.
3875
3876 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
3877 data.
3878
3879 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
3880 (AF_SCRIPT_FALLBACK): Renamed to ...
3881 (AF_STYLE_FALLBACK): ... this.
3882
3883 * src/autofit/afglobal.c: Include `hbshim.c'.
3884 Update use of `SCRIPT' and `STYLE' macros.
3885 (af_face_globals_compute_style_coverage)
3886 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
3887 Update.
3888
3889 * src/autofit/afmodule.h (AF_ModuleRec):
3890 s/fallback_script/fallback_style/.
3891
3892 * src/autofit/afmodule.c (af_property_set): Adapt handling of
3893 `fallback-script' property to set a fallback style.
3894 (af_property_get, af_autofitter_init): Updated.
3895
3896 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
3897
3898 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
3899
3900 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
3901 `hbshim.c'.
3902
3903 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
3904 (AUTOF_DRV_H): Add `afcover.h'.
3905
3906 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
3907 all libraries needed by FreeType.
3908
39092013-12-21 Werner Lemberg <wl@gnu.org>
3910
Werner Lembergb337fa22013-12-21 19:33:15 +01003911 Fix Savannah bug #40975 (sort of).
3912
3913 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
3914 behave the same as the Windows TrueType engine for the invalid case.
3915
39162013-12-21 Werner Lemberg <wl@gnu.org>
3917
Werner Lemberg3bf60952013-12-21 08:49:11 +01003918 [autofit] Make PIC mode work actually.
3919
3920 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
3921 enumeration values automatically generated by including `afscript.h'
3922 and friends.
3923
3924 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
3925
39262013-12-21 Werner Lemberg <wl@gnu.org>
3927
Werner Lembergbd413862013-12-21 08:14:25 +01003928 Fix PIC linking.
3929
3930 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
3931 generated function name.
3932
3933 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
3934 to ...
3935 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
3936 function name correctly corresponds to what the macro framework
3937 expects.
3938
3939 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
3940 that PIC functions are compiled also.
3941
39422013-12-21 Werner Lemberg <wl@gnu.org>
3943
Werner Lembergc4e968e2013-12-21 07:23:08 +01003944 [base] Add missing dependencies to Makefile.
3945
3946 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
3947 (BASE_H): Add `basepic.h'.
3948
Werner Lemberg974b1932013-12-20 17:26:26 +010039492013-12-20 Werner Lemberg <wl@gnu.org>
3950
Werner Lemberg8a8f3752013-12-20 18:35:35 +01003951 [autofit] Fix PIC compilation.
3952
3953 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3954 src/autofit/aflatin.c (af_latin_metrics_init_widths)
3955 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
3956
3957 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
3958 AF_DEFINE_STYLE_CLASS.
3959
3960 * src/autofit/afpic.c: Include `afglobal.h'.
3961 (autofit_module_class_pic_init): Typo.
3962
3963 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
3964 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
3965 parameter and structure member.
3966
39672013-12-20 Werner Lemberg <wl@gnu.org>
3968
Werner Lemberg974b1932013-12-20 17:26:26 +01003969 [autofit] Introduce `styles'.
3970
3971 This is the new top-level structure for handling glyph input data;
3972 scripts are now defined separately.
3973
3974 * src/autofit/aftypes.h (SCRIPT): Updated.
3975 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
3976 members to ...
3977 (AF_Style_ClassRec): ... this new structure.
3978 (AF_Style): New enumeration.
3979 (AF_StyleMetricsRec): Replace `script' enumeration with
3980 `style_class' pointer.
3981 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
3982 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
3983
3984 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
3985 * src/autofit/afscript.h: Updated.
3986
3987 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3988 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
3989
3990 * src/autofit/afglobal.c (SCRIPT): Updated.
3991 (STYLE): Redefine macro to load `afstyles.h'.
3992 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
3993 (af_style_names): ... this array.
3994 (af_face_globals_compute_script_coverage): Renamed to...
3995 (af_face_globals_compute_style_coverage): ... this.
3996 Updated.
3997 (af_face_globals_new, af_face_globals_free,
3998 af_face_globals_get_metrics): Updated.
3999
4000 * src/autofit/afglobal.h (SCRIPT): Updated.
4001 (STYLE): Redefine macro to load `afstyles.h'.
4002 (AF_SCRIPT_FALLBACK): Update definition. This will get more
4003 refinements with later on.
4004 (AF_SCRIPT_UNASSIGNED): Replace with...
4005 (AF_STYLE_UNASSIGNED): ... this macro.
4006 (AF_FaceGlobalsRec): Updated.
4007
4008 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4009 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
4010 af_latin_hint_edges): Updated.
4011
4012 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
4013 (af_ltn2_uniranges): Removed.
4014
4015 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4016 Updated.
4017
4018 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
4019 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
4020 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
4021 members.
4022
4023 * src/autofit/afranges.h: Updated.
4024
4025 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
4026
Werner Lembergd8324572013-12-19 15:45:24 +010040272013-12-19 Werner Lemberg <wl@gnu.org>
4028
4029 [autofit] Factor scripts and uniranges out of writing system files.
4030
4031 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
4032
4033 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
4034 parameters, taking data from the writing system files.
4035
4036 * src/autofit/aftypes.h: Updated.
4037
4038 * src/autofit/afglobal.c: Include `afranges.h'.
4039 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
4040 * src/autofit/afglobal.c: Include `afranges.h'.
4041 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
4042
4043 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
4044 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
4045 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
4046 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
4047 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
4048
4049 * src/autofit/afpic.c: Updated.
4050
4051 * src/autofir/autofit.c: Include `afranges.c'.
4052 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
4053
Werner Lemberg9a354552013-12-18 10:36:06 +010040542013-12-18 Werner Lemberg <wl@gnu.org>
4055
Werner Lemberg73f31982013-12-19 15:24:17 +01004056 [autofit] More code orthogonality.
4057
4058 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
4059 pointer to an `AF_ScriptClass' structure with `script' index of type
4060 `AF_Script'.
4061 Move some code around.
4062
4063 * src/autofit/afcjk.c: Include `afpic.h'.
4064 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
4065 af_cjk_hint_edges): Updated.
4066
4067 * src/autofit/aflatin.c: Include `afpic.h'.
4068 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
4069 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
4070
4071 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
4072
4073 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4074 Updated.
4075
40762013-12-18 Werner Lemberg <wl@gnu.org>
4077
Werner Lemberg3f91cb32013-12-18 12:59:35 +01004078 [autofit] s/ScriptMetrics/StyleMetrics/.
4079
40802013-12-18 Werner Lemberg <wl@gnu.org>
4081
Werner Lemberg4fccc212013-12-18 12:53:01 +01004082 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
4083
40842013-12-18 Werner Lemberg <wl@gnu.org>
4085
Werner Lembergf4df4072013-12-18 10:39:30 +01004086 [autofit] s/gscripts/gstyles/.
4087
40882013-12-18 Werner Lemberg <wl@gnu.org>
4089
Werner Lemberg9a354552013-12-18 10:36:06 +01004090 [autofit] s/glyph_scripts/glyph_styles/.
4091
4092 This is the first commit of a series to create a new top-level
4093 structure (a `style') for handling scripts, writing_systems, and
4094 soon-to-be-added coverages.
4095
Werner Lemberg7a5fc2f2013-12-17 13:29:53 +010040962013-12-17 Werner Lemberg <wl@gnu.org>
4097
4098 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
4099
Infinality8bb09b02013-12-11 09:01:13 +010041002013-12-11 Infinality <infinality@infinality.net>
4101
4102 [truetype] Simplify logic of rendering modes.
4103
4104 This patch unifies the subpixel and non-subpixel cases.
4105
4106 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
4107 `grayscale_hinting'; all code should refer to `grayscale' instead.
4108 Remove unused `native_hinting' member.
4109 Rename `subpixel_hinting' member to `subpixel.
4110
4111 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
4112 (tt_loader_init): Updated.
4113
4114 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
4115 Updated.
4116
Werner Lemberge9d95aa2013-12-11 07:48:51 +010041172013-12-11 Werner Lemberg <wl@gnu.org>
4118
4119 [documentation] Add section how to include FreeType header files.
4120 Problem reported by David Kastrup <dak@gnu.org>.
4121
4122 Surprisingly, a description how to do that was completely missing in
4123 the API reference.
4124
4125 * include/freetype.h, include/ftchapters.h: New documentation
4126 section `header_inclusion'.
4127
Werner Lemberg05c786d2013-12-10 08:38:57 +010041282013-12-10 Werner Lemberg <wl@gnu.org>
4129
Werner Lemberg91932592013-12-10 13:24:07 +01004130 [autofit] s/DFLT/NONE/, s/dflt/none/.
4131
41322013-12-10 Werner Lemberg <wl@gnu.org>
4133
Werner Lemberg45244f82013-12-10 13:18:11 +01004134 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
4135
41362013-12-10 Werner Lemberg <wl@gnu.org>
4137
Werner Lemberg69d1a362013-12-10 10:12:27 +01004138 [truetype] Fix scaling of vertical phantom points.
4139
4140 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
4141 pp4.x also.
4142
41432013-12-10 Werner Lemberg <wl@gnu.org>
4144
Werner Lemberg05c786d2013-12-10 08:38:57 +01004145 [truetype] Fix positioning of composite glyphs.
4146 Problem reported by Nigel Tao <nigeltao@golang.org>.
4147
4148 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
4149 the glyph (component) by a fractional value computed from the LSB
4150 phantom point. This is wrong, since the horizontal phantom points
4151 get rounded horizontally later on.
4152
Werner Lembergdd8050a2013-12-08 23:14:46 +010041532013-12-08 Werner Lemberg <wl@gnu.org>
4154
4155 * Version 2.5.2 released.
4156 =========================
4157
4158
4159 Tag sources with `VER-2-5-2'.
4160
4161 * docs/VERSION.DLL: Update documentation and bump version number to
4162 2.5.2.
4163
4164 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
4165 builds/windows/vc2005/index.html,
4166 builds/windows/vc2008/freetype.vcproj,
4167 builds/windows/vc2008/index.html,
4168 builds/windows/vc2010/freetype.vcxproj,
4169 builds/windows/vc2010/index.html,
4170 builds/windows/visualc/freetype.dsp,
4171 builds/windows/visualc/freetype.vcproj,
4172 builds/windows/visualc/index.html,
4173 builds/windows/visualce/freetype.dsp,
4174 builds/windows/visualce/freetype.vcproj,
4175 builds/windows/visualce/index.html,
4176 builds/wince/vc2005-ce/freetype.vcproj,
4177 builds/wince/vc2005-ce/index.html,
4178 builds/wince/vc2008-ce/freetype.vcproj,
4179 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
4180
Werner Lembergec8853c2014-03-06 19:13:45 +01004181 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01004182
4183 * builds/unix/configure.raw (version_info): Set to 17:1:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01004184 * CMakeLists.txt (VERSION_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01004185 * docs/CHANGES: Updated.
4186
Werner Lemberg98d185c2013-12-07 09:26:55 +010041872013-12-07 Werner Lemberg <wl@gnu.org>
4188
4189 [truetype] Next round in phantom point handling.
4190
4191 Greg Hitchcock provided very interesting insights into the
4192 complicated history of the horizontal positions of the TSB and BSB
4193 phantom points.
4194
4195 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
4196 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
4197 `grayscale_hinting' flags as conditionals for the x position of TSB
4198 and BSB.
4199
Werner Lembergfcdb7842013-12-05 15:53:27 +010042002013-12-05 Werner Lemberg <wl@gnu.org>
4201
4202 * builds/freetype.mk (FT_CC): Removed. Unused.
4203
Werner Lemberg64b395c2013-12-04 06:18:56 +010042042013-12-04 Werner Lemberg <wl@gnu.org>
4205
4206 [sfnt] Fix handling of embedded bitmap strikes.
4207
4208 This corrects the commit from 2013-11-21. Problem reported by
4209 Andrey Panov <panov@canopus.iacp.dvo.ru>.
4210
4211 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
4212 detect excessive bytes for bit-aligned bitmaps.
4213
Werner Lembergbdd5e752013-12-03 06:57:02 +010042142013-12-03 Werner Lemberg <wl@gnu.org>
4215
Werner Lembergc2b47532013-12-03 07:01:57 +01004216 [truetype] Remove dead code.
4217
4218 Reported by Nigel Tao <nigeltao@golang.org>.
4219
4220 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
4221 `preserve_pps' field.
4222 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
4223
42242013-12-03 Werner Lemberg <wl@gnu.org>
4225
Werner Lembergbdd5e752013-12-03 06:57:02 +01004226 [truetype] Fix phantom point handling.
4227
4228 This is a further improvement to the changes from 2013-11-06.
4229
4230 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
4231 are rounded horizontally, vertical ones are rounded vertically.
4232 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
4233 points in pre-ClearType mode is zero, as shown in the OpenType
4234 specification.
4235
Werner Lemberg64872a52013-12-02 07:51:17 +010042362013-12-02 Werner Lemberg <wl@gnu.org>
4237
4238 [truetype] Fix change from 2013-11-20.
4239
4240 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
4241
4242 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
4243 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
4244 `IS_HINTED' clause.
4245 Also remove redundant check using `maxSizeOfInstructions' – in
4246 simple glyphs, the bytecode data comes before the outline data, and
4247 a validity test for this is already present.
4248
Werner Lemberg52166ab2013-11-27 10:10:16 +010042492013-11-27 Werner Lemberg <wl@gnu.org>
4250
4251 [autofit] Fix use of dumping functions in `ftgrid' demo program.
4252
4253 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
4254 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
4255 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
4256 handle output to stdout.
4257 Use AF_DUMP.
4258 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
4259 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
4260
Werner Lemberg3aee4292013-11-25 00:28:11 +010042612013-11-25 Werner Lemberg <wl@gnu.org>
4262
4263 * Version 2.5.1 released.
4264 =========================
4265
4266
4267 Tag sources with `VER-2-5-1'.
4268
4269 * docs/VERSION.DLL: Update documentation and bump version number to
4270 2.5.1.
4271
4272 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
4273 builds/windows/vc2005/index.html,
4274 builds/windows/vc2008/freetype.vcproj,
4275 builds/windows/vc2008/index.html,
4276 builds/windows/vc2010/freetype.vcxproj,
4277 builds/windows/vc2010/index.html,
4278 builds/windows/visualc/freetype.dsp,
4279 builds/windows/visualc/freetype.vcproj,
4280 builds/windows/visualc/index.html,
4281 builds/windows/visualce/freetype.dsp,
4282 builds/windows/visualce/freetype.vcproj,
4283 builds/windows/visualce/index.html,
4284 builds/wince/vc2005-ce/freetype.vcproj,
4285 builds/wince/vc2005-ce/index.html,
4286 builds/wince/vc2008-ce/freetype.vcproj,
4287 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
4288
4289 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
4290
4291 * builds/unix/configure.raw (version_info): Set to 17:0:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01004292 * CMakeLists.txt (VERSION_PATCH): Set to 1.
Werner Lemberg3aee4292013-11-25 00:28:11 +01004293 * docs/CHANGES, docs/release: Updated.
4294
Werner Lemberg9326caf2013-11-23 23:59:25 +010042952013-11-23 Werner Lemberg <wl@gnu.org>
4296
Werner Lemberg063ee6b2013-11-24 00:19:17 +01004297 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
4298
4299 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
4300 TRICK_NAMES_COUNT): Updated.
4301 (trick_names): Add family name for the two fonts.
4302
43032013-11-23 Werner Lemberg <wl@gnu.org>
4304
Werner Lemberg9326caf2013-11-23 23:59:25 +01004305 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
4306
Werner Lemberg427b1762013-11-21 13:10:56 +010043072013-11-21 Werner Lemberg <wl@gnu.org>
4308
Werner Lemberg9326caf2013-11-23 23:59:25 +01004309 [sfnt] Typo.
Werner Lemberg8af2a1c2013-11-21 13:13:12 +01004310
4311 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
4312
4313 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
4314 value if the font lacks an `OS/2' table.
4315
43162013-11-21 Werner Lemberg <wl@gnu.org>
4317
Werner Lemberg64b395c2013-12-04 06:18:56 +01004318 [sfnt] Improve handling of buggy embedded bitmap strikes.
Werner Lemberg427b1762013-11-21 13:10:56 +01004319
4320 We are now able to successfully load `AppleMyoungJo.ttf'.
4321 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
4322
4323 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
4324 format.
4325
Werner Lemberg28626862013-11-20 21:06:18 +010043262013-11-20 Werner Lemberg <wl@gnu.org>
4327
4328 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
4329
4330 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
4331
4332 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
4333
4334 for details.
4335
4336 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
4337 tables also for setting `autohint'.
4338
4339 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
4340 `TT_Process_Composite_Glyph' for handling unreliable values of
4341 `maxSizeOfInstructions'.
4342
Werner Lembergbc25de62013-11-16 07:52:20 +010043432013-11-16 Werner Lemberg <wl@gnu.org>
4344
4345 [sfnt] Fix `OS/2' table version 5 support.
4346
4347 We now follow the `official' announcement from Microsoft (on the
4348 OpenType mailing list, which unfortunately hasn't a public archive).
4349
4350 * include/freetype/tttables.h (TT_OS2):
4351 s/usLowerPointSize/usLowerOpticalPointSize/,
4352 s/usUpperPointSize/usUpperOpticalPointSize/.
4353
4354 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
4355 default values.
4356
Werner Lembergfae38202013-11-13 08:55:46 +010043572013-11-13 Werner Lemberg <wl@gnu.org>
4358
Werner Lembergc52b1292013-11-13 10:06:00 +01004359 * builds/unix/ft2unix.h: Remove. No longer necessary.
4360
4361 * builds/unix/install.mk (install): Updated.
4362
43632013-11-13 Werner Lemberg <wl@gnu.org>
4364
Werner Lembergfae38202013-11-13 08:55:46 +01004365 Simplify header file hierarchy.
4366
4367 This large patch changes the header file directory layout from
4368 `include/freetype/...' to `include/...', effectively removing one
4369 level. Since the file `ft2build.h' is also located in `include'
4370 (and it stays there even after installation), all FreeType header
4371 files are now in a single directory.
4372
4373 Applications that use (a) `freetype-config' or FreeType's
4374 `pkg-config' file to get the include directory for the compiler, and
4375 (b) the documented way for header inclusion like
4376
4377 #include <ft2build.h>
4378 #include FT_FREETYPE_H
4379 ...
4380
4381 don't need any change to the source code.
4382
4383 * include/freetype/*: Move up to...
4384 * include/*: ... this directory.
4385
4386 * builds/amiga/include/freetype/*: Move up to...
4387 * builds/amiga/include/*: ... this directory.
4388
4389 */*: Essentially do `s@/freetype/@/@' where appropriate.
4390
4391 * CMakeList.txt: Simplify.
4392 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
4393 `--cflags', return a single directory.
4394 * builds/unix/install.mk (install): No longer try to remove `cache'
4395 and `internal' subdirectories; instead, remove the `freetype'
4396 subdirectory.
4397
Werner Lembergea5c7812013-11-12 08:55:26 +010043982013-11-12 Werner Lemberg <wl@gnu.org>
4399
4400 [truetype] Fix last `truetype' commit.
4401
4402 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
4403 Return error value.
4404 (load_truetype_glyph): Updated.
4405
Werner Lemberg78333282013-11-10 06:26:52 +010044062013-11-10 Werner Lemberg <wl@gnu.org>
4407
4408 * docs/CMAKE: New dummy file.
4409
Dave Arnolddd213012013-11-08 10:52:51 +010044102013-11-08 Dave Arnold <darnold@adobe.com>
4411
4412 [cff] Fix for hints that touch.
4413
4414 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
4415 finding index value of insertion point.
4416
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +010044172013-11-06 Werner Lemberg <wl@gnu.org>
4418
Werner Lemberg5e225b72013-11-06 08:41:59 +01004419 [truetype] Fix handling of phantom points in composite glyphs.
4420 Problem reported by Nigel Tao <nigeltao@golang.org>.
4421
4422 This is a follow-up commit to the previous one.
4423
4424 * src/truetype/ttgload.c (load_truetype_glyph): Call
4425 `tt_get_metrics' after loading the glyph header.
4426
44272013-11-06 Werner Lemberg <wl@gnu.org>
4428
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +01004429 [truetype] Improve emulation of vertical metrics.
4430
4431 This commit also improves the start values of vertical phantom
4432 points. Kudos to Greg Hitchcock for help.
4433
4434 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
4435 `yMax' value. Replace code with fixed Microsoft definition.
4436 (tt_get_metrics): Updated.
4437 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
4438 points, taken from both the OpenType specification and private
4439 communication with Greg (which will eventually be added to the
4440 standard).
4441 Fix horizontal position of `pp3' and `pp4'.
4442
4443 * src/truetype/ttgload.h: Updated.
4444
4445 * src/truetype/ttdriver.c (tt_get_advances): Updated.
4446
4447 * docs/CHANGES: Updated.
4448
Werner Lembergc6064282013-11-05 13:29:15 +010044492013-11-05 Werner Lemberg <wl@gnu.org>
4450
Werner Lemberg50740532013-11-05 23:19:18 +01004451 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
4452 PlatformToolSet version 110 is for VC2012.
4453
4454 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
4455
44562013-11-05 Werner Lemberg <wl@gnu.org>
4457
Werner Lembergc6064282013-11-05 13:29:15 +01004458 [truetype] Correctly reset point tags for glyph components.
4459 Problem reported by Nigel Tao <nigeltao@golang.org>.
4460
4461 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
4462
Werner Lemberg35b08182013-11-02 08:28:41 +010044632013-11-02 Werner Lemberg <wl@gnu.org>
4464
Werner Lemberg7d449432013-11-02 11:36:37 +01004465 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
4466
4467 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
4468 get info on subpixel hinting.
4469
4470 * docs/CHANGES: Updated.
4471
44722013-11-02 Werner Lemberg <wl@gnu.org>
4473
Werner Lemberg35b08182013-11-02 08:28:41 +01004474 Fix Savannah bug #40451.
4475
4476 Simply apply the patch from the bug report.
4477
4478 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
4479 include/freetype/config/ftconfig.h: The used #pragma directives only
4480 work with gcc versions 4.6 and higher.
4481
Werner Lembergebf52d62013-11-01 13:26:28 +010044822013-11-01 Werner Lemberg <wl@gnu.org>
4483
Werner Lembergafa0d592013-11-01 22:27:27 +01004484 * docs/CHANGES: Updated.
4485
44862013-11-01 Werner Lemberg <wl@gnu.org>
4487
Werner Lembergebf52d62013-11-01 13:26:28 +01004488 [truetype] Minor code refactoring.
4489
4490 Two benefits: The allocated FDEF (and IDEF) array gets slightly
4491 smaller, and the `ttdebug' demo program has access to function
4492 numbers without additional costs.
4493
4494 Fortunately, no changes to FontForge are necessary – this is the
4495 only external TrueType debugger I know of, but others may exist and
4496 should check the code accordingly.
4497
4498 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
4499 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
4500 structure.
4501
4502 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
4503 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
4504 Updated.
4505
Werner Lembergee510512013-10-27 07:25:35 +010045062013-10-27 Werner Lemberg <wl@gnu.org>
4507
4508 [sfnt] Implement support for `OS/2' table version 5.
4509
4510 See
4511
4512 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
4513
4514 for the announcement.
4515
4516 * include/freetype/tttables.h (TT_OS2): Add fields
4517 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
4518 this structure only as a pointer through `FT_Get_Sfnt_Table', there
4519 shouldn't be any ABI problems.
4520
4521 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
4522
4523 * docs/CHANGES: Updated.
4524
Werner Lemberg994a8592013-10-24 08:50:34 +020045252013-10-24 Werner Lemberg <wl@gnu.org>
4526
4527 * README.git, docs/CHANGES, docs/INSTALL: Updated.
4528
John Carya0e4a732013-10-24 08:49:08 +020045292013-10-24 John Cary <cary@txcorp.com>
4530
4531 Provide cmake support.
4532
4533 * CMakeLists.txt: New file.
4534
Kenneth Miller4d87ac82013-10-23 20:10:56 +020045352013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
4536 Werner Lemberg <wl@gnu.org>
4537
4538 Provide support for x64 builds in Visual C++ project files.
4539
4540 * src/builds/win32: Renamed to...
4541 * src/builds/windows: This.
4542
4543 * src/builds/windows/vc2010/*: Updated to handle x64 target.
4544
4545 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
4546 appropriate.
4547
Werner Lemberg604838d2013-10-22 01:10:10 +020045482013-10-22 Werner Lemberg <wl@gnu.org>
4549
4550 * src/base/md5.c, src/base/md5.h: Updated to recent version.
4551
4552 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
4553
Werner Lembergdb9159c2013-10-22 10:27:50 +02004554 The canonical URL to get updates for this file is
4555
4556 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
4557
4558 as the author told me in private communication.
4559
Werner Lemberg34efe052013-10-19 21:14:40 +020045602013-10-19 Werner Lemberg <wl@gnu.org>
4561
Werner Lemberg75efc2d2013-10-19 21:46:03 +02004562 [autofit] s/SMALL_TOP/X_HEIGHT/.
4563
4564 * src/autofit/afblue.dat: Updated.
4565
4566 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4567
4568 * src/autofit/aflatin.c, src/autofit/aflatin.h,
4569 src/autofit/atlatin2.c: Updated.
4570
45712013-10-19 Werner Lemberg <wl@gnu.org>
4572
Werner Lemberg34efe052013-10-19 21:14:40 +02004573 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
4574
4575 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4576
Werner Lemberg955f6a82013-10-16 19:47:57 +020045772013-10-16 Werner Lemberg <wl@gnu.org>
4578
Werner Lemberga5f22a92013-10-17 11:08:25 +02004579 [autofit] Add description strings to script entries.
4580
4581 Currently, this is unused.
4582
4583 * src/autofit/afscript.h: Do it.
4584 * src/autofit/afglobal.c, src/autofit/afpic.c,
4585 src/autofit/aftypes.h: Updated.
4586
45872013-10-16 Werner Lemberg <wl@gnu.org>
4588
Werner Lemberg955f6a82013-10-16 19:47:57 +02004589 [autofit] Improve tracing message for extra light flag.
4590
4591 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
4592
Chongyu Zhu41632b52013-10-15 11:40:34 +020045932013-10-15 Chongyu Zhu <lembacon@gmail.com>
4594
4595 [arm] Fix thumb2 inline assembly under LLVM.
4596
4597 When using `ADD' with an immediate operand, the instruction is
4598 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
4599 immediate operand cannot exceed 4095. It will fail to compile with
4600 LLVM.
4601
4602 However, in GCC, due to some legacy compatibility considerations,
4603 `ADD.W' will be automatically emitted when the immediate operand is
4604 larger than 4095.
4605
4606 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4607 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
4608
4609 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
4610
Werner Lembergb6695242013-10-12 10:33:04 +020046112013-10-12 Werner Lemberg <wl@gnu.org>
4612
4613 [autofit] Improve tracing of `latin' hinter.
4614
4615 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
4616 zone types.
4617 (af_latin_metrics_scale_dim): Report scaling changes due to x height
4618 alignment.
4619 Report scaled stroke width and blue zone values.
4620
Dave Arnolde845a852013-10-03 23:04:29 +020046212013-10-03 Dave Arnold <darnold@adobe.com>
4622
4623 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
4624
Werner Lemberg2c56f2a2013-10-07 22:01:00 +02004625 Note that the old code avoided using a region of the piecewise
4626 linear function where the slope was zero. The recovery was to use a
4627 different section of the function, which produced a different,
4628 incorrect amount of darkening.
4629
Darrell Bellert01af71d2013-10-02 22:04:07 +020046302013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
4631
4632 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
4633
Dave Arnold0b330452013-10-02 11:04:06 +020046342013-10-02 Dave Arnold <darnold@adobe.com>
4635
4636 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
4637
4638 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
4639 is to use a previous darkening amount when producing an unhinted,
4640 unscaled outline. This can cause autohint samples in ftgrid and
4641 ftview to be based on darkened CFF outlines instead of unhinted,
4642 undarkened ones.
4643
Dave Arnold3a2cb0f2013-09-29 16:17:02 +020046442013-09-29 Dave Arnold <darnold@adobe.com>
4645
4646 Fix Savannah bug #39295.
4647
4648 The bug was caused by switching to the initial hintmap (the one in
4649 effect when `moveto' executes) just before drawing the final element
4650 in the charstring. This ensured that the path was closed (in both
4651 Character Space and Device Space). But if the final element was a
4652 curve and if the final hintmap was different enough from the initial
4653 one, then the curve was visibly distorted.
4654
4655 The first part of the fix is to draw the final curve using the final
4656 hintmap as specified by the charstring. This corrects the
4657 distortion but does not ensure closing in Device Space. It may
4658 require the rasterizer to automatically generate an extra closing
4659 line. Depending on the hintmap differences, this line could be from
4660 zero to a couple pixels in length.
4661
4662 The second part of the fix covers the case where the charstring
4663 subpath is closed with an explicit line. We now modify that line's
4664 end point to avoid the distortion.
4665
4666 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
4667 the change are:
4668
4669 25ppem S (98)
4670 24ppem eight (52)
4671 25.5ppem p (85)
4672
4673 Curves at the *end* of a subpath are no longer distorted. However,
4674 some of these glyphs have bad hint substitutions in the middle of a
4675 subpath, and these are not affected.
4676
4677 The patch has been tested with a set of 106 fonts that shipped with
4678 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
4679 Google Fonts. There are 1.5 million glyphs, of which some 20k are
4680 changed with the fix. A sampling of a few hundred of these changes
4681 have been examined more closely, and the changes look good (or at
4682 least acceptable).
4683
4684 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
4685 to indicate that we synthesize a closepath line.
4686
4687 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
4688 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
4689 `lineto' operator) and adjust hint zone.
4690 For synthesized closing lines, use end point in first hint zone.
4691 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
4692 particular, shift the detection of zero-length lines from character
4693 space to device space.
4694 (cf2_glyphpath_closeOpenPath): Remove assertion.
4695 Updated.
4696
Werner Lembergb75a8b82013-09-25 09:46:36 +020046972013-09-25 Werner Lemberg <wl@gnu.org>
4698
4699 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
4700
suzuki toshiyaac0f4452013-09-25 10:57:17 +090047012013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4702
4703 [bdf, pcf] Refuse non-zero face_index.
Werner Lemberg964317e2013-09-25 09:22:40 +02004704
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004705 Suggested by Akira Tagoh, see
4706
4707 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
4708
Werner Lemberg964317e2013-09-25 09:22:40 +02004709 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
4710 error if the font could be opened but non-zero `face_index' is
4711 given.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004712 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
4713
4714 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
Werner Lemberg964317e2013-09-25 09:22:40 +02004715 macro for `face_index' because it is validated later.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004716
Werner Lemberg4de77872013-09-23 22:10:08 +020047172013-09-23 Werner Lemberg <wl@gnu.org>
4718
4719 Fix Savannah bug #40090.
4720
4721 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
4722 306f8c5d (from 2013-08-25) affecting this function.
4723
Werner Lemberg5a4c5a52013-09-22 22:37:26 +020047242013-09-22 Werner Lemberg <wl@gnu.org>
4725
4726 [autofit] Disunify Cyrillic and Greek handling from Latin.
4727
4728 * src/autofit/afscript.h: Add Cyrillic and Greek.
4729
4730 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
4731 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
4732 (AF_BLUE_STRINGSET_LATN): Fix typo.
4733 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4734
4735 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
4736 arrays.
4737 (af_grek_script_class, af_cyrl_script_class): New scripts.
4738 * src/autofit/aflatin.h: Updated.
4739
Werner Lemberg2cca9662013-09-20 07:23:34 +020047402013-09-20 Werner Lemberg <wl@gnu.org>
4741
4742 * docs/CHANGES: Updated.
4743
Behdad Esfahbod31e726d2013-09-20 07:20:53 +020047442013-09-20 Behdad Esfahbod <behdad@behdad.org>
4745
4746 Fix vertical size of emboldened glyphs.
4747
4748 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
4749
4750 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
4751 also.
4752
Alexei Podtelezhnikov52381c12013-09-11 23:25:56 -040047532013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
4754
4755 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
4756 algorithm description.
4757
Werner Lemberg3f542492013-09-11 23:08:31 +020047582013-09-11 Werner Lemberg <wl@gnu.org>
4759
4760 [autofit] Improve Hebrew rendering.
4761
4762 This change introduces a new blue zone property
4763 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
4764 top segments.
4765
4766 * src/autofit/afblue.dat: Fix Hebrew blue strings.
4767 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
4768
4769 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
4770
4771 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
4772
4773 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
4774 `AF_LATIN_IS_LONG_BLUE'.
4775
4776 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
4777
Werner Lemberg85a7fdf2013-08-29 21:03:05 +020047782013-08-28 Behdad Esfahbod <behdad@google.com>
4779
4780 [sfnt] Fix frame access while reading WOFF table directory.
4781
4782 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
4783 while reading the directory entries for the whole loop.
4784
47852013-08-29 Werner Lemberg <wl@gnu.org>
Werner Lembergd689d1c2013-08-29 17:53:40 +02004786 Behdad Esfahbod <behdad@google.com>
4787
4788 Implement support for WOFF containers.
4789
4790 We simply synthesize a SFNT from the WOFF, create a memory stream
4791 for the new data, and load the SFNT as usual.
4792
4793 Does NOT add any API to access WOFF metadata or private blocks.
4794
4795 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
4796 WOFF_TableRec): New structures.
4797
4798 * include/freetype/tttags.h (TTAG_wOFF): New macro.
4799
4800 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
4801 `open_face'.
4802
4803 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
4804 `FT_GZIP_H'.
4805 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
4806 writing to a stream.
4807 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
4808 (sfnt_open_font): Handle `TTAG_wOFF'.
4809 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
4810
4811 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
4812 `sfnt->init_face'.
4813
4814 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
4815 argument so that a changed stream survives.
4816 Update callers.
4817
48182013-08-28 Werner Lemberg <wl@gnu.org>
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004819
Werner Lembergdc240522013-08-29 17:53:24 +02004820 [gzip] New function `FT_Gzip_Uncompress'.
4821
4822 This is modeled after zlib's `uncompress' function. We need this
4823 for WOFF support.
4824
4825 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
4826 New function.
4827
4828 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
4829
48302013-08-28 Werner Lemberg <wl@gnu.org>
4831
Werner Lemberg5195ecd2013-08-28 17:41:21 +02004832 [autofit] Fix `make multi' compilation.
4833
4834 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
4835 `afblue.h' but `aftypes.h'.
4836 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
4837
48382013-08-28 Werner Lemberg <wl@gnu.org>
4839
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004840 [autofit] Fix C++ compilation.
4841
4842 * src/autofit/afglobal.c (af_face_globals_get_metrics),
4843 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
4844 (af_deva_script_class): Use proper casts.
4845
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +020048462013-08-27 Behdad Esfahbod <behdad@google.com>
4847
Behdad Esfahbodc799dd62013-08-27 21:46:03 +02004848 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
4849
48502013-08-27 Behdad Esfahbod <behdad@google.com>
4851
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +02004852 FT_Open_Face: Improve external stream handling.
4853
4854 If the font's `clazz->init_face' function wants to swap to new
4855 stream, handling of whether original stream was external could
4856 result to either memory leak or double free. Mark externality into
4857 face flags before calling `init_face' such that the clazz can handle
4858 external streams properly.
4859
4860 * src/base/ftobjs.c (FT_Open_Face): Move code to set
4861 FT_FACE_FLAG_EXTERNAL_STREAM to...
4862 (open_face): This function.
4863
Werner Lemberg5e53db22013-08-27 18:37:39 +020048642013-08-27 Werner Lemberg <wl@gnu.org>
4865
Werner Lembergbcd8c0b2013-08-27 21:36:03 +02004866 Remove `FT_SqrtFixed' function.
4867
4868 It's no longer used.
4869
4870 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
4871
48722013-08-27 Werner Lemberg <wl@gnu.org>
4873
Werner Lemberg5e53db22013-08-27 18:37:39 +02004874 [autofit] While tracing, report script names instead of ID values.
4875
4876 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
4877 New array.
4878 * src/autofit/afglobal.h: Updated.
4879
4880 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
4881 af_cjk_hint_edges): Use `af_script_names'.
4882 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4883 af_latin_hint_edges): Ditto.
4884
Werner Lemberg92f5a042013-08-26 09:22:27 +020048852013-08-26 Werner Lemberg <wl@gnu.org>
4886
Werner Lemberg278f64b2013-08-26 20:20:03 +02004887 [autofit] Report used script while hinting a glyph.
4888
4889 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
4890 (af_latin_hint_edges): Implement it.
4891
48922013-08-26 Werner Lemberg <wl@gnu.org>
4893
Werner Lemberg371f5c32013-08-26 20:11:24 +02004894 [autofit] Add support for Hebrew script.
4895
4896 * src/autofit/afblue.dat: Add blue strings for Hebrew.
4897 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4898
4899 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
4900 (af_hebr_script_class): New script.
4901 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
4902
49032013-08-26 Werner Lemberg <wl@gnu.org>
4904
Werner Lemberg098121d2013-08-26 18:54:05 +02004905 [autofit] Improve tracing messages.
4906
4907 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
4908 ID in tracing message.
4909 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
4910 loop.
4911 Improve tracing messages.
4912 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
4913 `num_actions' to count hinting actions.
4914 Improve tracing messages.
4915
4916 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
4917 script ID in tracing message.
4918 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
4919 messages.
4920
49212013-08-26 Werner Lemberg <wl@gnu.org>
4922
Werner Lembergffee64a2013-08-26 12:55:48 +02004923 Better tracing of loaded glyphs.
4924
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004925 Previously, the loading of a glyph was traced at level 4, if at all.
Werner Lembergffee64a2013-08-26 12:55:48 +02004926 With this change, all font loading routines emit a tracing message
4927 at level 1, making it easier to select tracing output (for example
4928 using F2_DEBUG="any:1 afhints:7 aflatin:7").
4929
4930 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
4931 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
4932 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
4933 messages.
4934 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
4935 message.
4936 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
4937 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
4938 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
4939 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
4940 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
4941 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
4942
49432013-08-26 Werner Lemberg <wl@gnu.org>
4944
Werner Lemberg33655a92013-08-26 09:58:50 +02004945 [autofit] Fix script selection.
4946
4947 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
4948 `AF_SCRIPT_DFLT', not value 0.
4949 Simplify code.
4950
4951 * src/autofit/afscript.h: Sort by script name.
4952
49532013-08-26 Werner Lemberg <wl@gnu.org>
4954
Werner Lemberg92f5a042013-08-26 09:22:27 +02004955 [autofit] Make `dummy' hinter work as expected.
4956
4957 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
4958 information.
4959 (af_dummy_hints_apply): Scale the glyphs.
4960
Werner Lemberg8b8be782013-08-25 08:01:41 +020049612013-08-25 Werner Lemberg <wl@gnu.org>
4962
Werner Lembergc1eb4452013-08-25 19:47:26 +02004963 [autofit] Make `cjk' module use blue stringsets.
4964
4965 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
4966 (af_cjk_hani_blue_chars): Removed.
4967 (AF_CJK_BLUE_TYPE_*): Removed.
4968 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
4969 AF_BLUE_STRING_MAX_LEN.
4970 Change loops to use offsets (in file `afblue.h') into the new arrays
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004971 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
Werner Lembergc1eb4452013-08-25 19:47:26 +02004972 Instead of three dimensions (as used in the old blue string array)
4973 we now use properties to do the same, saving one loop nesting level.
4974
4975 * src/autofit/afcjk.h: Remove old enumeration values superseded by
4976 the new data in `afblue.h'.
4977 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
4978 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
4979 `af_cjk_metrics_init_blues'.
4980 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
4981 (AF_CJK_BLUE_IS_TOP): Renamed to...
4982 (AF_CJK_BLUE_TOP): This.
4983 (AF_CJK_MAX_BLUES): Remove.
4984 (AF_CJKAxisRec): Updated.
4985
49862013-08-25 Werner Lemberg <wl@gnu.org>
4987
Werner Lemberg5c4a23a2013-08-25 19:29:07 +02004988 [autofit] Typo.
4989
4990 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
4991 cast.
4992
49932013-08-25 Werner Lemberg <wl@gnu.org>
4994
Werner Lemberg306f8c52013-08-25 13:07:08 +02004995 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
4996
4997 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
4998 messages.
4999 (af_cjk_metrics_init_blues): Don't pass blue string array as
5000 argument but use the global array directly.
5001 Use `outline' directly.
5002 Update and add tracing messages.
5003 (af_cjk_metrics_init): Simplify code.
5004 (af_cjk_metrics_scale_dim): Improve tracing message.
5005 (af_cjk_metrics_scale): Synchronize.
5006
5007 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
5008 af_latin_metrics_init_blues): Improve and add tracing messages.
5009
50102013-08-25 Werner Lemberg <wl@gnu.org>
5011
Werner Lemberg0975d682013-08-25 08:37:47 +02005012 [autofit] Make `latin' module use blue stringsets.
5013
5014 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
5015 (af_latin_blue_chars): Removed.
5016 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
5017 with AF_BLUE_STRING_MAX_LEN.
5018 Change loops to use offsets (in file `afblue.h') into the new arrays
5019 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
5020 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
5021
5022 * src/autofit/aflatin.h: Remove old enumeration values superseded by
5023 the new data in `afblue.h'.
5024 (AF_LATIN_IS_TOP_BLUE): Updated definition.
5025 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
5026 (AF_LATIN_MAX_BLUES): Remove.
5027 (AF_LatinAxisRec): Updated.
5028
50292013-08-25 Werner Lemberg <wl@gnu.org>
5030
Werner Lembergdb3e5b92013-08-25 08:23:22 +02005031 [autofit] Add blue stringsets.
5032
5033 * src/autofit/aftypes.h: Include `afblue.h'.
5034 (AF_ScriptClassRec): Add `blue_stringset' field.
5035 (AF_DEFINE_SCRIPT_CLASS): Updated.
5036
5037 * src/autofit/autofit.c: Include `afblue.c'.
5038
5039 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
5040 (af_dflt_script_class), src/autofit/afindic.c
5041 (af_deva_script_class), src/autofit/aflatin.c
5042 (af_latn_script_class), src/autofit/aflatin2.c
5043 (af_ltn2_script_class): Updated.
5044
5045 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
5046
50472013-08-25 Werner Lemberg <wl@gnu.org>
5048
Werner Lemberg8b8be782013-08-25 08:01:41 +02005049 [autofit] Introduce data file for blue strings.
5050
5051 The idea is to have a central file which gets processed by a Perl
5052 script to create proper `.c' and `.h' files using templates. There
5053 are two other reasons to do that:
5054
5055 . The data file should be easily readable. We use UTF-8 encoding
5056 which then gets converted to single bytes.
5057
5058 . Since the number of supported scripts will increase soon, the
5059 current usage of blue string arrays is a waste of space. Using
5060 the Perl script it is possible to imitate jagged arrays,
5061 defining enumeration constants as offsets into the arrays.
5062
5063 This commit only adds files without changing any functionality.
5064
5065 * src/autofit/afblue.dat: New data file.
5066 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
5067
5068 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
5069 for...
5070 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
5071 To avoid a dependency on Perl, we add them too.
5072
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -040050732013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
5074
Werner Lemberg71c0ad62013-08-27 21:30:09 +02005075 [base] Enable new algorithm for `BBox_Cubic_Check'.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04005076
Werner Lemberg71c0ad62013-08-27 21:30:09 +02005077 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
5078 the old one.
5079 Improve comments.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04005080
Werner Lemberg6bfa2632013-08-18 18:34:05 +020050812013-08-18 Werner Lemberg <wl@gnu.org>
5082
Werner Lemberg4af44442013-08-18 18:46:30 +02005083 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
5084
50852013-08-18 Werner Lemberg <wl@gnu.org>
5086
Werner Lemberg6bfa2632013-08-18 18:34:05 +02005087 Fix Savannah bug #39804.
5088
5089 * builds/unix/configure.raw (LIBPNG): Define and export.
5090 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
5091 libpng.
5092
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -040050932013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
5094
5095 [base] Clean up BBox_Conic_Check.
5096
5097 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
5098 extremum at the segment ends, which are already within the bbox.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005099 Slightly modify calculations.
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -04005100
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -040051012013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
5102
5103 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
5104
5105 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005106 accuracy and avoid overflows.
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04005107
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -040051082013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
5109
5110 [base] Refactor experimental (disabled) BBox_Cubic_Check.
5111
5112 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04005113 as the mirror image of the maximum search implemented here...
5114 (update_max): New function.
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -04005115
John Tytgat9bcfab82013-08-06 08:55:19 +020051162013-08-06 John Tytgat <John.Tytgat@esko.com>
5117
5118 Fix Savannah bug #39702.
5119
5120 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
5121 != 0'; this stronger test is mandated by the CFF specification.
5122 Fix test for INDEX structures which have one or more empty entries
5123 at the end.
5124
Werner Lembergcc25e3a2013-08-05 08:46:15 +020051252013-08-05 Werner Lemberg <wl@gnu.org>
5126
Werner Lemberga32682f2013-08-06 00:21:46 +02005127 Fix gcc pragmas, part 2.
5128
5129 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
5130 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
5131 introduced with gcc version 4.6.
5132
51332013-08-05 Werner Lemberg <wl@gnu.org>
5134
Werner Lemberg69e524d2013-08-05 23:38:32 +02005135 Fix gcc pragmas.
5136
5137 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
5138 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
5139 pragmas within a function body.
5140
51412013-08-05 Werner Lemberg <wl@gnu.org>
5142
Werner Lemberg9e6de362013-08-05 16:37:21 +02005143 Fix Savannah bug #39700.
5144
5145 * builds/unix/ftconfig.h: Synchronize with
5146 `include/freetype/config/ftconfig.h'.
5147
5148 * builds/vms/ftconfig.h: Ditto.
5149 Make the differences to the master `ftconfig.h' file as small as
5150 possible for easier maintainance.
5151
51522013-08-05 Werner Lemberg <wl@gnu.org>
5153
Werner Lembergcc25e3a2013-08-05 08:46:15 +02005154 [autofit] Improve handling of `near' points.
5155
5156 Points which are very near to each other are now marked as such.
5157 The `weak' flag is then computed by using the `in' vector of the
5158 first and the `out' vector of the last point of a group of near
5159 points.
5160
5161 For example, this fixes the rendering of glyph `Oslash' in
5162 `Roboto-Thin.ttf'.
5163
5164 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
5165
5166 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
5167 the heuristic value `near_limit' to decide whether the current point
5168 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
5169 Store good `in' vector (of last non-near point) in
5170 `last_good_in_{x,y}' and use it as an argument to
5171 `ft_corner_is_flat' if necessary.
5172
Werner Lemberg74a9b672013-08-02 14:53:32 +020051732013-08-02 Werner Lemberg <wl@gnu.org>
5174
Werner Lemberg0d28a7d2013-08-02 22:59:43 +02005175 * include/freetype/ftcffdrv.h: Improve documentation.
5176 This is based on blog entries from David Lemon and Dave Arnold (both
5177 from Adobe) with kind permission. Dave also helped in
5178 proof-reading.
5179
51802013-08-02 Werner Lemberg <wl@gnu.org>
5181
Werner Lemberg456cc442013-08-02 20:25:21 +02005182 [autofit] Move declaration of scripts into separate file.
5183
5184 This has the benefit that we don't need to duplicate the data at
5185 different places.
5186
5187 * src/autofit/afscript.h: New file.
5188
5189 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
5190 the enumeration values.
5191
5192 * src/autofit/afglobal.c: Include `afscript.h' to get the script
5193 specific header files.
5194 (af_script_classes): Include `afscript.h' to fill this array.
5195
5196 * src/autofit/afpic.c: Include `afscript.h' to get the script
5197 specific header files.
5198 (autofit_module_class_pic_init): Include `afscript.h' for
5199 initialization.
5200 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
5201 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
5202
5203 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
5204
52052013-08-02 Werner Lemberg <wl@gnu.org>
5206
Werner Lemberg773601d2013-08-02 19:51:17 +02005207 [autofit] Move declaration of writing systems into separate file.
5208
5209 This has the benefit that we don't need to duplicate the data at
5210 different places.
5211
5212 * src/autofit/afwrtsys.h: New file.
5213
5214 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
5215 define the enumeration values.
5216
5217 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
5218 system specific header files.
5219 Include `afpic.h'.
5220 (af_writing_system_classes): Include `afwrtsys.h' to fill this
5221 array.
5222
5223 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
5224 system specific header files.
5225 (autofit_module_class_pic_init): Include `afwrtsys.h' for
5226 initialization.
5227 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
5228 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
5229 `AF_WRITING_SYSTEM_MAX' instead.
5230
52312013-08-02 Werner Lemberg <wl@gnu.org>
5232
Werner Lemberg74a9b672013-08-02 14:53:32 +02005233 [sfnt] Fix compilation with g++.
5234
5235 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
5236 cast.
5237 (Load_SBit_Png): Pacify compiler.
5238
Werner Lemberg89a529f2013-08-02 14:50:23 +020052392013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5240 Werner Lemberg <wl@gnu.org>
5241
5242 [autofit] Fix `make multi'.
5243
5244 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
5245 FT_LOCAL_ARRAY_DEF): New macros.
5246
5247 * src/autofit/afglobal.c (af_writing_system_classes,
5248 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
5249 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
5250 `af_script_classes'.
5251 * src/autofit/afloader.c: Include `afpic.h'.
5252
Werner Lemberge8ed2d62013-08-01 12:20:20 +020052532013-08-01 Werner Lemberg <wl@gnu.org>
5254
5255 Another round of cppcheck nitpicks.
5256
5257 The call was (from the top-level of the FreeType tree):
5258
5259 cppcheck --force \
5260 --enable=all \
5261 -I /usr/include \
5262 -I /usr/local/include \
5263 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
5264 -I include \
5265 -I include/freetype \
5266 -I include/freetype/config \
5267 -I include/freetype/internal \
5268 -DFT2_BUILD_LIBRARY \
5269 . &> cppcheck.log
5270
5271 using cppcheck git commit f7e93f99.
5272
5273 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
5274 macro).
5275
5276 */* Improve variable scopes.
5277 */* Remove redundant initializations which get overwritten.
5278
5279 * src/gxvalid/*: Comment out redundant code or guard it with
5280 FT_DEBUG_LEVEL_TRACE.
5281
Werner Lemberg5d6a3602013-07-30 23:17:04 +020052822013-07-30 Werner Lemberg <wl@gnu.org>
5283
Werner Lemberg72f5ff52013-07-31 22:49:29 +02005284 [autofit] Introduce `writing systems'.
5285
5286 This patch adds a new top level to the auto-hinter's script class
5287 hierarchy. It defines `writing systems' which can contain multiple
5288 scripts.
5289
5290 For example, the `latin' writing system (in file `aflatin.c') is
5291 able to support scripts like Latin, Cyrillic, Armenian, etc., which
5292 can be handled similarly.
5293
5294 Scripts are now named using four-letter OpenType tags.
5295
5296 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
5297 to...
5298 (AF_WritingSystemClassRec): This new structure. It holds pointers
5299 to functions which can be shared among related scripts.
5300 (AF_WritingSystem): New enumeration.
5301 (AF_Script): Revised values using four-letter tags.
5302 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
5303 (AF_DEFINE_SCRIPT_CLASS): Updated.
5304
5305 * src/autofit/afglobal.c (af_writing_system_classes): New global,
5306 constant array.
5307 (af_script_classes): Updated.
5308 (af_face_globals_free): Updated.
5309 Remove assertion.
5310 (af_face_globals_get_metrics): Updated.
5311
5312 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
5313 [!AF_CONFIG_OPTION_CJK]: Handle this case.
5314
5315 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
5316 Updated.
5317
5318 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
5319 initialize structures for both writing systems and scripts.
5320 * src/autofit/afpic.h: Updated.
5321 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
5322
5323 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
5324 system.
5325 (af_cjk_uniranges): Renamed to...
5326 (af_hani_uniranges): This.
5327 (af_cjk_script_class): Reduced and renamed to...
5328 (af_hani_script_class): This.
5329 * src/autofit/afcjk.h: Updated.
5330
5331 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
5332 system.
5333 (af_dummy_script_class): Reduced and renamed to...
5334 (af_dflt_script_class): This.
5335 * src/autofit/afdummy.h: Updated.
5336
5337 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
5338 system.
5339 (af_indic_uniranges): Renamed to...
5340 (af_deva_uniranges): This.
5341 (af_indic_script_class): Reduced and renamed to...
5342 (af_deva_script_class): This.
5343 * src/autofit/afcjk.h: Updated.
5344
5345 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
5346 system.
5347 (af_latin_uniranges): Renamed to...
5348 (af_latn_uniranges): This.
5349 (af_latin_script_class): Reduced and renamed to...
5350 (af_latn_script_class): This.
5351 * src/autofit/aflatin.h: Updated.
5352
5353 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
5354 writing system.
5355 (af_latin2_uniranges): Renamed to...
5356 (af_ltn2_uniranges): This.
5357 Synchronize ranges with `latin'.
5358 (af_latin2_script_class): Reduced and renamed to...
5359 (af_ltn2_script_class): This.
5360 * src/autofit/aflatin2.h: Updated.
5361
53622013-07-30 Werner Lemberg <wl@gnu.org>
5363
Werner Lemberg5d6a3602013-07-30 23:17:04 +02005364 [autofit] Variable renaming.
5365
5366 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
5367 s/clazz/script_class/.
5368 Update all users.
5369
suzuki toshiya2b29ed62013-07-30 13:55:29 +090053702013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5371
5372 Ignore libpng-config under cross-building configuration,
5373 because it will return the flags for the hosting environment.
5374
5375 * builds/unix/configure.raw: Ignore libpng-config when
5376 `cross_compiling' == yes.
5377
suzuki toshiyaf2e7f1e2013-07-30 13:32:57 +090053782013-07-30 Behdad Esfahbod <behdad@google.com>
5379
5380 Prevent division by zero by a transparent color.
5381
5382 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
5383 Return 0 immediately, when alpha channel is zero.
5384
Behdad Esfahbod21c32b02013-07-25 21:53:18 +020053852013-07-25 Behdad Esfahbod <behdad@google.com>
5386
5387 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
5388
5389 Also disambiguate Google's color bitmap tables.
5390
5391 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
5392 New macros.
5393
5394 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
5395 TT_SBIT_TABLE_TYPE_CBLC.
5396
5397 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
5398
5399 * src/sfnt/ttsbit.c (tt_face_load_sbit,
5400 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
5401 TT_SBIT_TABLE_TYPE_CBLC.
5402
suzuki toshiyab4725cb2013-07-24 14:25:39 +090054032013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5404
5405 [sfnt] Fix for `make multi' target.
5406
5407 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
5408
Werner Lemberg6a7df622013-07-20 10:48:37 +020054092013-07-20 Werner Lemberg <wl@gnu.org>
5410
5411 * docs/INSTALL.GNU: Updated.
5412
Behdad Esfahbodff269522013-07-20 08:02:39 +020054132013-07-20 Behdad Esfahbod <behdad@google.com>
5414
5415 [sfnt] Fix `sbix' table version handling.
5416
5417 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
5418 USHORT version numbers are to be considered as `minor'.
5419
Werner Lemberg05c14212013-07-19 23:11:23 +020054202013-07-19 Werner Lemberg <wl@gnu.org>
5421
5422 [autofit] Fix segment classification for blue zones.
5423
5424 The old code (essentially unchanged since the very beginning)
5425 incorrectly handled this configuration
5426
5427 x -o- x
5428 / \
5429 / \
5430 / \
5431 o o
5432
5433 as flat and this
5434
5435 o o
5436 / /
5437 x| x|
5438 | |
5439 o---------------o
5440
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005441 as round. (`o' and `x' are on and off points, respectively).
Werner Lemberg05c14212013-07-19 23:11:23 +02005442
5443 This is a major change which should improve the rendering results
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005444 enormously for many TrueType fonts, especially in the range approx.
Werner Lemberg05c14212013-07-19 23:11:23 +02005445 20-40ppem, fixing the appearance of many overshoots.
5446
5447 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
5448 first and last points of the segment, not the points right before
5449 and after.
5450
54512013-07-19 Behdad Esfahbod <behdad@google.com>
Werner Lemberg01705392013-07-18 13:13:12 +02005452
Behdad Esfahbod778a7e62013-07-19 14:28:28 +02005453 [sfnt] `sbix' fix-ups.
5454
5455 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
5456 are rendered scaled and then the `glyf' outline rendered on top. We
5457 don't support that yet, so just ignore the `glyf' outline and
5458 advertise it as a bitmap-only font.
5459
5460 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
5461 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
5462 (tt_face_load_sbix_image): Typo.
5463
54642013-07-18 Behdad Esfahbod <behdad@google.com>
5465
Werner Lemberg01705392013-07-18 13:13:12 +02005466 [sfnt] Add support for Apple's `sbix' color bitmap table.
5467
5468 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
5469 fields to FT_Short and FT_UShort, respectively.
5470 (TT_SBitTableType): New enumeration.
5471 (TT_FaceRec): Add `sbit_table_type' field.
5472
5473 * include/freetype/tttags.h (TTAG_sbix): New macro.
5474
5475 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
5476 FT_GlyphSlot argument instead FT_Bitmap.
5477 Add flag to control map and metrics handling.
5478 Update all users.
5479
5480 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
5481 (tt_face_load_eblc): Renamed to...
5482 (tt_face_load_sbit): This.
5483 Handlic `sbix' bitmaps.
5484 (tt_face_free_eblc): Renamed to...
5485 (tt_face_load_sbit): This.
5486 Updated.
5487 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
5488 (tt_face_load_sbix_image): New function.
5489 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
5490 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5491 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5492 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
5493 and handle load flags.
5494 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
5495 handle formats 17-19.
5496 Move color to grayscale conversion to...
5497 (tt_face_load_sbit_image): Here.
5498 Handle `sbix' bitmaps.
5499
5500 * src/sfnt/pngshim.h: Updated.
5501 * src/sfnt/ttsbit.h: Updated.
5502 * src/sfnt/sfdriver.c: Updated.
5503
Werner Lemberg274207e2013-07-18 12:38:57 +020055042013-07-18 Werner Lemberg <wl@gnu.org>
5505
5506 [sfnt] Ignore invalid magic number in `head' or `bhed'.
5507
5508 Other font engines seem to ignore it also. Problem reported by
5509 Hin-Tak Leung <htl10@users.sourceforge.net>.
5510
5511 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
5512 we have an invalid magic number.
5513
Werner Lemberg9a7951d2013-07-16 15:25:24 +020055142013-07-16 Werner Lemberg <wl@gnu.org>
5515
5516 [smooth] Fix segfault caused by previous commit.
5517
5518 * src/smooth/ftgrays.c (gray_set_cell): Always compute
5519 `ras.invalid'.
5520
David Turnera5f33ee2013-07-16 12:40:03 +020055212013-07-16 David Turner <digit@google.com>
5522
David Turner89929ec2013-07-16 13:36:07 +02005523 [smooth] Improve performance.
5524
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005525 Provide a work-around for an ARM-specific performance bug in GCC.
David Turner89929ec2013-07-16 13:36:07 +02005526 This speeds up the rasterizer by more than 5%.
5527
5528 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
5529 also improves performance on other platforms by a tiny bit (<1%).
5530
5531 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
5532 Use it where appropriate.
5533
5534 (gray_record_cell, gray_set_cell, gray_move_to,
5535 gray_convert_glyph_inner): Streamline condition handling.
5536
55372013-07-16 David Turner <digit@google.com>
5538
David Turnerf66d48e2013-07-16 13:18:00 +02005539 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
5540
5541 This patch provides slightly optimized versions for ARM, x86, and
5542 x86_64 CPUs if built with GCC.
5543
5544 Also remove some dead code.
5545
5546 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
5547 TT_DotFix14_long_long): New functions.
5548
55492013-07-16 David Turner <digit@google.com>
5550
David Turnerb2890882013-07-16 12:52:18 +02005551 Optimize FT_MulFix for x86_64 GCC builds.
5552
5553 This patch provides an optimized `FT_MulFix' implementation for
5554 x86_64 machines when FreeType is built with GCC, or compatible
5555 compilers like Clang.
5556
5557 Example:
5558 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
5559
5560 Before:
5561
5562 Load 4.863 us/op
5563 Load_Advances (Normal) 4.816 us/op
5564 Load_Advances (Fast) 0.028 us/op
5565 Render 2.753 us/op
5566 Get_Glyph 0.463 us/op
5567 Get_CBox 0.077 us/op
5568 Get_Char_Index 0.023 us/op
5569 Iterate CMap 13.898 us/op
5570 New_Face 12.368 us/op
5571 Embolden 0.028 us/op
5572 Get_BBox 0.302 us/op
5573
5574 After:
5575
5576 Load 4.617 us/op
5577 Load_Advances (Normal) 4.645 us/op
5578 Load_Advances (Fast) 0.027 us/op
5579 Render 2.789 us/op
5580 Get_Glyph 0.460 us/op
5581 Get_CBox 0.077 us/op
5582 Get_Char_Index 0.024 us/op
5583 Iterate CMap 13.403 us/op
5584 New_Face 12.278 us/op
5585 Embolden 0.028 us/op
5586 Get_BBox 0.301 us/op
5587
5588 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5589 (FT_MulFix_x86_64): New function.
5590
55912013-07-16 David Turner <digit@google.com>
5592
David Turnera5f33ee2013-07-16 12:40:03 +02005593 Speed up ARMv7 support.
5594
5595 When building for ARMv7 with thumb2 instructions, the optimized
5596 `FT_MulFix_arm' assembly routine was not being used.
5597
5598 The reason for this is in the `ftconfig.h' header, namely:
5599
5600 - The assembly routine uses the `smull' instruction which is not
5601 available when generating Thumb-1 machine code. It is available
5602 in Thumb-2 mode, though.
5603
5604 - The header was written a long time ago before Thumb-2 became
5605 widely popular (e.g. with Android). So it simply doesn't use the
5606 assembly routine if the `__thumb__' built-in macro is defined.
5607
5608 - When compiling in Thumb-2 mode, the compiler will define both
5609 `__thumb__' and `__thumb2__'.
5610
5611 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
5612 assembly routine is only avoided when generating Thumb-1 code.
5613
5614 Given that this is performance-sensitive function, this improves
5615 `ftbench' as follows on a Galaxy Nexus:
5616
5617 Before (us/op) After (us/op)
5618
5619 - loading Arial.ttf glyphs at 14 ppem [1]
5620
5621 Load 34.285 33.098
5622
5623 - same operation with the light auto-hinter [2]
5624
5625 Load 31.317 29.590
5626
5627 - same operation without hinting [3]
5628
5629 Load 6.143 5.376
5630
5631 - loading Arial.ttf advances at 14 ppem [4]
5632
5633 Load_Advances (normal) 34.216 33.016
5634 Load_Advances (fast) 0.176 0.176
5635
5636 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
5637 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
5638 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
5639 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
5640
5641 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5642 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
5643
Werner Lemberge12fc772013-06-28 07:57:32 +020056442013-06-28 Werner Lemberg <wl@gnu.org>
5645
5646 * docs/CHANGES: Updated.
5647
Werner Lemberg680c1d42013-06-27 17:21:59 +020056482013-06-27 Werner Lemberg <wl@gnu.org>
5649
5650 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
5651
Werner Lembergc7cc9eb2013-06-25 07:24:02 +020056522013-06-25 Werner Lemberg <wl@gnu.org>
5653
Werner Lembergb8850fc2013-06-26 12:22:10 +02005654 [cff] Add darkening limit to `darkening-parameters'.
5655
5656 * src/cff/cffdrivr.c (cff_property_set): Add check.
5657
56582013-06-25 Werner Lemberg <wl@gnu.org>
5659
Werner Lemberg89ca1fd2013-06-25 23:28:02 +02005660 [cff] Add `darkening-parameters' property.
5661
5662 * include/freetype/ftcffdrv.h: Document it.
5663
5664 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
5665 `darkening-parameters' property.
5666
5667 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
5668
5669 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
5670 argument and use it.
5671 Update all callers.
5672
5673 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
5674 `darken_params' values.
5675
5676 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
5677
5678 * src/cff/cffobjs.c (cff_driver_init): Set default values for
5679 `darken_params'.
5680
56812013-06-25 Werner Lemberg <wl@gnu.org>
5682
Werner Lembergfad93262013-06-25 10:41:37 +02005683 [docmaker] Code shuffling.
5684
5685 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
5686 * src/tools/docmaker/sources.py: ... to this file.
5687
56882013-06-25 Werner Lemberg <wl@gnu.org>
5689
Werner Lemberg8bdc4072013-06-25 10:20:53 +02005690 [docmaker] Remove unused functions.
5691
5692 * src/tools/docmaker/content.py (DocMarkup.get_start,
5693 DocBlock.get_markup_name): Removed.
5694 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
5695 HtmlFormatter.make_html_words): Removed.
5696
56972013-06-25 Werner Lemberg <wl@gnu.org>
5698
Werner Lembergffb8b472013-06-25 09:09:30 +02005699 * builds/freetype.mk (dll): Remove target.
5700
5701 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
5702
57032013-06-25 Werner Lemberg <wl@gnu.org>
5704
Werner Lembergc7cc9eb2013-06-25 07:24:02 +02005705 [docmaker] Recognise URLs.
5706
5707 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
5708 (make_html_para): Use it.
5709
Werner Lemberg25b7da52013-06-19 10:23:36 +020057102013-06-19 Werner Lemberg <wl@gnu.org>
5711
Werner Lembergfe4f5712013-06-19 23:27:47 +02005712 * Version 2.5.0.1 released.
5713 ===========================
5714
5715
5716 Tag sources with `VER-2-5-0-1'.
5717
5718 * include/freetype/config/ftoption.h: Undefine
5719 CFF_CONFIG_OPTION_OLD_ENGINE.
5720 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
5721
57222013-06-19 Werner Lemberg <wl@gnu.org>
5723
Werner Lemberg609f0ca2013-06-19 14:41:47 +02005724 * builds/unix/install.mk (install): Don't create `cache' directory.
5725
5726 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
5727
57282013-06-19 Werner Lemberg <wl@gnu.org>
5729
Werner Lemberg25b7da52013-06-19 10:23:36 +02005730 * Version 2.5.0 released.
5731 =========================
5732
5733
5734 Tag sources with `VER-2-5-0'.
5735
5736 * docs/VERSION.DLL: Update documentation and bump version number to
5737 2.5.0.
5738
5739 * README, Jamfile (RefDoc),
5740 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
5741 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
5742 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
5743 builds/win32/visualc/freetype.dsp,
5744 builds/win32/visualc/freetype.vcproj,
5745 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
5746 builds/win32/visualce/freetype.vcproj,
5747 builds/win32/visualce/index.html,
5748 builds/wince/vc2005-ce/freetype.vcproj,
5749 builds/wince/vc2005-ce/index.html,
5750 builds/wince/vc2008-ce/freetype.vcproj,
5751 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
5752
5753 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
5754 (FREETYPE_PATCH): Set to 0.
5755
5756 * builds/unix/configure.raw (version_info): Set to 16:2:10.
5757
5758 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
5759 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
5760
Werner Lembergf56691a2013-06-18 10:17:48 +020057612013-06-18 Werner Lemberg <wl@gnu.org>
5762
5763 Fix Savannah bug #39269.
5764
5765 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
5766 case of reacollocation failures.
5767
Andrew Church67cf7a82013-06-18 09:35:34 +020057682013-06-18 Andrew Church <achurch+savannah@achurch.org>
5769
5770 Fix Savannah bug #39266.
5771
5772 If memory allocations fail at certain points while opening a font,
5773 FreeType can either crash due to a NULL dereference or leak memory.
5774
5775 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
5776 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
5777 FT_Open_Face() fails in a memory allocation before the face's
5778 reference count is set to 1, a subsequent `FT_Done_Library' call
5779 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
5780 the face.
5781
5782 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
5783 earlier.
5784 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
5785 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
5786
57872013-06-14 Werner Lemberg <wl@gnu.org>
Werner Lembergd7e34442013-06-14 18:33:39 +02005788
5789 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
5790
Dave Arnoldcb23a622013-06-13 07:46:32 +020057912013-06-06 Dave Arnold <darnold@adobe.com>
5792 Werner Lemberg <wl@gnu.org>
5793
5794 [cff] Add code to Adobe's engine to handle ppem > 2000.
5795
5796 * src/cff/cffgload.c (cff_slot_load): If we get
5797 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
5798
Andrew Church67cf7a82013-06-18 09:35:34 +020057992013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg25b6e602013-06-12 11:06:34 +02005800
Werner Lemberg294ce112013-06-12 23:33:11 +02005801 Another try on pragmas.
5802
5803 * include/freetype/internal/ftdebug.h: Move pragmas to...
5804 * include/freetype/internal/internal.h: ... this file since it gets
5805 included by all source files.
5806 * include/freetype/internal/ftserv.h: Remove pragma which has no
5807 effect.
5808
Dave Arnoldcb23a622013-06-13 07:46:32 +020058092013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg294ce112013-06-12 23:33:11 +02005810
Werner Lemberg25b6e602013-06-12 11:06:34 +02005811 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
5812
5813 This partially undoes commit 3f6e0e0c.
5814
Werner Lembergc06889e2013-06-12 10:58:06 +020058152013-06-12 Werner Lemberg <wl@gnu.org>
5816
5817 More compiler warning fixes.
5818
5819 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
5820
Werner Lemberg99e60d82013-06-10 01:44:37 +020058212013-06-10 Werner Lemberg <wl@gnu.org>
5822
Werner Lemberg5e094c62013-06-10 14:59:21 +02005823 [truetype] Improve handling of broken sbit advance widths.
5824
5825 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
5826 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
5827
5828 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
5829
58302013-06-10 Werner Lemberg <wl@gnu.org>
5831
Werner Lemberga25ecfd2013-06-10 12:57:16 +02005832 [sfnt] Improve embedded bitmap tracing.
5833
5834 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
5835 bitmap strike match to...
5836 (FT_Match_Size): This function.
5837
5838 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
5839 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5840 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5841 tt_sbit_decoder_load_image): Decorate with tracing messages.
5842
58432013-06-10 Werner Lemberg <wl@gnu.org>
5844
Werner Lemberg99e60d82013-06-10 01:44:37 +02005845 Fix Savannah bug #39160.
5846
5847 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
5848 for the degenerate case.
5849
Werner Lemberg2ba871b2013-06-09 08:20:54 +020058502013-06-09 David Turner <digit@google.com>
5851
5852 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
5853
5854 This code, present since eight(!) years in the unused `CACHE'
5855 branch, has been forgotten to apply to the master branch. It's
5856 really amazing that noone has ever complained since
5857 `FTC_Manager_Reset' is pretty useless without flushing the cache.
5858
Werner Lemberg85fd84b2013-06-07 17:10:21 +020058592013-06-07 Werner Lemberg <wl@gnu.org>
5860
Werner Lemberg3f6e0e02013-06-07 18:10:40 +02005861 Add and improve pragmas for MSVC compiler.
5862
5863 * include/freetype/internal/ftdebug.h: Remove pragmas.
5864 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
5865 * include/freetype/internal/ftvalid.h: Handle warning C4324.
5866 * src/base/ftobjs.c: Use push and pop for pragmas.
5867 * src/gzip/ftgzip.c: Handle warning C4244.
5868
58692013-06-07 Werner Lemberg <wl@gnu.org>
5870
Werner Lemberg85fd84b2013-06-07 17:10:21 +02005871 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
5872
5873 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
5874
Werner Lemberg4447b2c2013-06-06 21:28:36 +020058752013-06-06 Dave Arnold <darnold@adobe.com>
5876
5877 [cff] Add early exit feature for width-only calls.
5878
5879 This is for `FT_Get_Advance'.
5880
5881 There are 7 places where the spec says the width can be defined:
5882
5883 hstem/hstemhm
5884 vstem/vstemhm
5885 cntrmask/hintmask
5886 hmoveto
5887 vmoveto
5888 rmoveto
5889 endchar
5890
5891 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
5892 if possible.
5893
5894 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
5895 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
5896 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
5897
Werner Lembergbadf3172013-06-06 09:16:38 +020058982013-06-06 Werner Lemberg <wl@gnu.org>
5899
5900 Next round of compiler fixes.
5901
5902 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
5903 Add proper cast.
5904
5905 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
5906 cast.
5907 * include/freetype/internal/ftstream.h: Decorate stream and frame
5908 macros with `FT_Long' and `FT_ULong' as appropriate.
5909
5910 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
5911 raccess_guess_darwin_newvfs): Use cast.
5912
5913 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
5914
5915 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
5916 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
5917
5918 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
5919 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
5920 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
5921
5922 * src/cid/cidparse.c (cid_parser_new): Use cast.
5923
5924 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
5925
5926 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
5927
5928 * src/raster/ftraster.c (ft_black_reset): Use cast.
5929
5930 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
5931 (ALL_POINTS): Fix cast.
5932
5933 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
5934 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
5935
Dave Arnoldc3782492013-06-05 19:57:55 +020059362013-06-05 Dave Arnold <darnold@adobe.com>
5937
5938 Fix more MSVC Win32 compiler warnings.
5939
5940 * src/base/ftobjs.c: Fix typo in MS pragma.
5941
5942 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
5943 `lineno' is only used in debug mode.
5944
5945 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
5946 debug mode.
5947
Werner Lemberg45392b72013-06-05 13:43:20 +020059482013-06-05 Werner Lemberg <wl@gnu.org>
5949
5950 Fix compiler warnings.
5951
5952 * include/freetype/internal/ftmemory.h: Decorate memory allocation
5953 macros with `FT_Long' where appropriate.
5954 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
5955
5956 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
5957 cast.
5958
5959 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
5960 including `md5.c'.
5961
5962 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
5963 cast.
5964
5965 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
5966 (tt_sbit_decoder_load_bitmap): Beautification.
5967
5968 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
5969 variables (earlier).
5970
5971 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
5972
5973 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
5974 where appropriate.
5975
5976 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
5977
Werner Lembergdc624ca2013-06-04 10:30:48 +020059782013-06-04 Werner Lemberg <wl@gnu.org>
5979
Werner Lembergd9634982013-06-04 20:18:57 +02005980 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
5981
5982 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
5983
59842013-06-04 Werner Lemberg <wl@gnu.org>
5985
Werner Lembergdc624ca2013-06-04 10:30:48 +02005986 Apply fixes for cppcheck nitpicks.
5987
5988 http://cppcheck.sourceforge.net/
5989
Werner Lemberg8d8508e2013-06-04 13:09:01 +02005990 The call was (from the top-level of the FreeType tree):
5991
5992 cppcheck --force \
5993 --enable=all \
5994 -I include \
5995 -I include/freetype/ \
5996 -I include/freetype/config/ \
5997 -I include/freetype/internal/ \
5998 . &> cppcheck.log
5999
Werner Lembergdc624ca2013-06-04 10:30:48 +02006000 Note that the current version heavily chokes on FreeType, delivering
Werner Lemberg8d8508e2013-06-04 13:09:01 +02006001 many wrong results. I will report those issues to the cppcheck team
Werner Lembergdc624ca2013-06-04 10:30:48 +02006002 so that a newer version gives improved results hopefully.
6003
6004 */* Improve variable scopes.
6005 */* Remove redundant initializations which get overwritten.
6006
Werner Lemberge8ed2d62013-08-01 12:20:20 +02006007 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
Werner Lembergdc624ca2013-06-04 10:30:48 +02006008 Remove unused variable.
6009
6010 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
6011
6012 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
6013 Remove functionless code.
6014
6015 * src/tools/ftrandom.c (main): Fix memory leak.
6016
Werner Lemberg2429dc32013-06-03 12:41:58 +020060172013-06-03 Werner Lemberg <wl@gnu.org>
6018
6019 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
6020
6021 This controls whether the old FreeType CFF engine gets compiled into
6022 FreeType. It is now disabled by default.
6023
6024 * devel/ftoption.h, include/freetype/config/ftoption.h
6025 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
6026
6027 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
6028 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
6029 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
6030 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
6031 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
6032
6033 * docs/CHANGES: Updated.
6034
Werner Lembergf9cceeb2013-06-02 23:38:13 +020060352013-06-02 Werner Lemberg <wl@gnu.org>
6036
6037 Fix PNG library handling.
6038
6039 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
6040 LIBPNG_LDFLAGS.
6041
Behdad Esfahbod760d3422013-05-29 11:36:18 +020060422013-05-23 Behdad Esfahbod <behdad@google.com>
6043
6044 Add support for color embedded bitmaps (eg. color emoji).
6045
6046 A new load flag, FT_LOAD_COLOR, makes FreeType load color
6047 embedded-bitmaps, following this draft specification
6048
6049 https://color-emoji.googlecode.com/git/specification/v1.html
6050
6051 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
6052 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
6053 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
6054 pre-multiplied sRGB images. If PNG support is available, PNG color
6055 images as defined in the same proposed specification are supported
6056 also.
6057
6058 Note that color bitmaps are converted to grayscale if client didn't
6059 ask for color.
6060
6061 * builds/unix/configure.raw: Search for libpng.
6062 Add `--without-png' option.
6063
6064 * devel/ftoption.h, include/freetype/config/ftoption.h
6065 (FT_CONFIG_OPTION_USE_PNG): New macro.
6066
6067 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
6068
6069 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
6070 `FT_PIXEL_MODE_BGRA'.
6071
6072 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
6073
6074 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
6075 (ft_gray_for_premultiplied_srgb_bgra): New function.
6076 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
6077
6078 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
6079
6080 * src/sfnt/sfnt.c: Include `pngshim.c'.
6081
6082 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
6083 (tt_face_load_eblc): Load `CBLC'.
6084 (tt_sbit_decoder_init): Load `CBDT'.
6085 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
6086 color and grayscale bitmaps.
6087 Set `num_grays'. This is used by `ftview' to choose the blending
6088 algorithm.
6089 (tt_sbit_decoder_load_byte_aligned,
6090 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
6091 tt_sbit_decoder_load_image): Pass load flag.
6092 s/write/pwrite/.
6093 Don't call `tt_sbit_decoder_alloc_bitmap'.
6094 Updated.
6095 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
6096 (tt_sbit_decoder_load_bitmap): Pass load flag.
6097 Handle new glyph formats 17, 18, and 19.
6098 Call `tt_sbit_decoder_alloc_bitmap'.
6099 Flatten color bitmaps if necessary.
6100 (tt_face_load_sbit_image): Updated.
6101
6102 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
6103
6104 * docs/CHANGES: Updated.
6105
Guenter41e44802013-05-24 11:38:09 +020061062013-05-24 Guenter <info@gknw.net>
6107
6108 Apply Savannah patch #8055.
6109
6110 Make `apinames' create an import file for NetWare.
6111
6112 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
6113 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
6114 (names_dump): Handle it.
6115 (usage): Updated.
6116 (main): Handle new command line flag `-wN'.
6117
Behdad Esfahbod2d6e1fb2013-05-23 08:01:20 +020061182013-05-23 Behdad Esfahbod <behdad@behdad.org>
6119
6120 Compilation fix.
6121
6122 * src/truetype/ttinterp.c (TT_RunIns)
6123 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
6124
Infinality18f35ed2013-05-21 20:51:15 -050061252013-05-22 Infinality <infinality@infinality.net>
6126
Infinality3c783c12013-05-21 21:03:00 -05006127 [truetype] Formatting and an additional subpixel tweak.
6128
6129 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
6130 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
6131 Revert previous modification for Verdana clones.
6132
61332013-05-22 Infinality <infinality@infinality.net>
6134
Infinality18f35ed2013-05-21 20:51:15 -05006135 [truetype] Adjust subpixel zp2 moves and tweak rules.
6136
6137 These modifications fix thin diagonal stems in some legacy fonts.
6138
6139 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
6140 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
6141 (Ins_SHP): Disable x moves here for subpixel rendering.
6142 (Ins_SHPIX): Only disable x moves in compatibility mode.
6143 Split out zp2 move reversals and reorder conditional respectively.
6144
6145 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
6146 Only adjust Verdana clones for 17 ppem.
6147 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
6148 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
6149
Infinality63bfa832013-05-20 07:38:21 +020061502013-05-20 Infinality <infinality@infinality.net>
6151
6152 [truetype] Simplify and improve subpixel function detection.
6153
6154 Some small enhancements have allowed the removal of many macros and
6155 the simplification of existing rules in `ttsubpix.c'.
6156
6157 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
6158 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
6159 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
6160 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
6161 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
6162
6163 * src/truetype/ttsubpix.c: Updated affected rules.
6164
6165 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
6166 (INS_FDEF): Add additional function detection.
6167 (INS_ENDF): Set runtime flag.
6168 (Ins_CALL): Skip the call under certain conditions.
6169 Remove bad code.
6170 (Ins_LOOPCALL): Skip the call under certain conditions.
6171 Remove bad code.
6172 (Move_Zp2_Point): Updated.
6173 (Ins_SHPIX): Updated.
6174 Skip the move under some situations.
6175 (Ins_MIAP): Improve conditions.
6176 (Ins_MIRP): Updated.
6177 (Ins_DELTAP): Skip move under certain conditions.
6178 Simplify conditions.
6179 (TT_RunIns): Updated.
6180 Add code to handle new function detection.
6181 Trace messages.
6182
Werner Lembergfd664692013-05-17 17:40:27 +020061832013-05-17 Werner Lemberg <wl@gnu.org>
6184
6185 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
6186
6187 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
6188 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
6189
Werner Lembergf04951a2013-05-17 13:51:07 +020061902013-05-15 Werner Lemberg <wl@gnu.org>
6191
6192 [truetype] Add `interpreter-version' property.
6193
6194 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
6195 at runtime.
6196
Werner Lemberg27991332013-05-17 14:00:26 +02006197 * include/freetype/ftttdrv.h: New file.
6198
6199 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
6200 macro.
6201
Werner Lembergf04951a2013-05-17 13:51:07 +02006202 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
6203 (tt_property_set, tt_property_get): Fill templates.
6204
6205 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
6206 member.
6207 Remove unused `extension_component' member.
6208
6209 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
6210 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
6211 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
6212
6213 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
6214 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
6215 Update all affected functions to use it.
6216 Use TT_INTERPRETER_VERSION_XXX where appropriate.
6217
6218 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
6219 (tt_driver_init): Initialize `interpreter_version'.
6220
6221 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
6222 Use TT_INTERPRETER_VERSION_XXX where appropriate.
6223
Werner Lemberg7441dd82013-05-13 09:12:46 +020062242013-05-13 Werner Lemberg <wl@gnu.org>
6225
Werner Lemberg6650be72013-05-13 10:05:29 +02006226 [truetype] Avoid empty source file.
6227
6228 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
6229 Provide dummy typedef.
6230
62312013-05-13 Werner Lemberg <wl@gnu.org>
6232
Werner Lemberg7441dd82013-05-13 09:12:46 +02006233 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
6234
6235 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
6236
Brian Nixon8d6025c2013-05-13 09:06:42 +020062372013-05-13 Brian Nixon <bnixon@yahoo.com>
6238
6239 Fix Savannah bug #38970.
6240
6241 * src/base/ftdebug.c, builds/win32/ftdebug.c,
6242 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
6243 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
6244
Werner Lembergd51ac9c2013-05-12 06:00:27 +020062452013-05-12 Werner Lemberg <wl@gnu.org>
6246
Werner Lembergcd888752013-05-12 15:08:57 +02006247 [truetype] Add framework for TrueType properties.
6248
6249 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
6250 (tt_property_set, tt_property_get): New functions, still empty.
6251 Define `tt_service_properties' service.
6252 Update `tt_services'.
6253
6254 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
6255 (TT_SERVICE_PROPERTIES_GET): New macro.
6256 (TTModulePIC): Add `tt_service_properties'.
6257
62582013-05-12 Werner Lemberg <wl@gnu.org>
6259
Werner Lembergb112fa42013-05-12 07:29:04 +02006260 Fix Savannah bug #38967.
6261
6262 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
6263
62642013-05-12 Werner Lemberg <wl@gnu.org>
6265
Werner Lembergcbcf33d2013-05-12 07:27:48 +02006266 Introduce unsigned 64bit type (if available).
6267
6268 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
6269 [FT_LONG64]: Provide FT_UInt64.
6270
6271 * builds/unix/ftconfig.in: Synchronized.
6272
62732013-05-12 Werner Lemberg <wl@gnu.org>
6274
Werner Lembergd51ac9c2013-05-12 06:00:27 +02006275 Fix Savannah bug #38968.
6276
6277 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
6278 FT_Property_{Set,Get}.
6279 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
6280 FT_Property_{Set,Get}.
6281
Werner Lembergf6aa0892013-05-10 07:58:47 +020062822013-05-10 Werner Lemberg <wl@gnu.org>
6283
Werner Lembergea2b4752013-05-10 08:04:33 +02006284 [sfnt] Clean up bitmap code.
6285
6286 * src/sfnt/ttsbit.c: Deleted.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02006287 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
Werner Lembergea2b4752013-05-10 08:04:33 +02006288 * rules.mk (SFNT_DRV_H): Updated.
6289
62902013-05-10 Werner Lemberg <wl@gnu.org>
6291
Werner Lembergf6aa0892013-05-10 07:58:47 +02006292 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
6293
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006294----------------------------------------------------------------------------
6295
Werner Lembergf57fc592015-01-17 20:41:43 +01006296Copyright 2013-2015 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006297David Turner, Robert Wilhelm, and Werner Lemberg.
6298
6299This file is part of the FreeType project, and may only be used, modified,
6300and distributed under the terms of the FreeType project license,
6301LICENSE.TXT. By continuing to use, modify, or distribute this file you
6302indicate that you have read the license and understand and accept it
6303fully.
6304
6305
6306Local Variables:
6307version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00006308coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006309End: