blob: 714288f96648c5b59abc51625363cd9da8345f8a [file] [log] [blame]
Werner Lemberg0a33a392015-02-17 08:03:05 +010012015-02-17 Werner Lemberg <wl@gnu.org>
2
3 [truetype] Various signedness fixes.
4
5 * include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.
6
7 * src/truetype/ttgload.c: Apply.
8 (TT_Get_VMetrics): Protect against invalid ascenders and descenders
9 while constructing advance height.
10
Werner Lemberg587351b2015-02-16 07:03:22 +0100112015-02-16 Werner Lemberg <wl@gnu.org>
12
Werner Lemberg76abc752015-02-16 22:00:27 +010013 [base] Finish compiler warning fixes for signedness issues.
14
15 * src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
16 Apply.
17
182015-02-16 Werner Lemberg <wl@gnu.org>
19
Werner Lemberg10aa8582015-02-16 20:12:54 +010020 * include/tttables.h (TT_OS2): `fsType' must be FT_UShort.
21
222015-02-16 Werner Lemberg <wl@gnu.org>
23
Werner Lemberg2e814fc2015-02-16 20:05:08 +010024 More minor signedness warning fixes.
25
26 * src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
27 src/base/ftutil.c: Apply.
28
292015-02-16 Werner Lemberg <wl@gnu.org>
30
Werner Lemberg82235d02015-02-16 19:35:16 +010031 Next round of minor compiler warning fixes.
32
33 * include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
34 type to `FT_Long'.
35 (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.
36
37 * include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
38
39 * src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
40 Signedess fixes.
41
422015-02-16 Werner Lemberg <wl@gnu.org>
43
Werner Lemberg3cfa4d12015-02-16 17:59:06 +010044 Various minor signedness fixes.
45
46 * include/ftadvanc.h, include/internal/ftobjs.h,
47 src/base/ftgloadr.c, src/base/ftobjs.c: Apply.
48
492015-02-16 Werner Lemberg <wl@gnu.org>
50
Werner Lemberg6f325c22015-02-16 11:31:32 +010051 New `TYPEOF' macro.
52
53 This helps suppress signedness warnings, avoiding issues with
54 implicit conversion changes.
55
56 * include/config/ftconfig.h, builds/unix/ftconfig.in,
57 builds/vms/ftconfig.h (TYPEOF): Define.
58
59 * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
60 src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.
61
622015-02-16 Werner Lemberg <wl@gnu.org>
63
Werner Lemberg1f377f02015-02-16 08:37:09 +010064 * src/base/ftsystem.c: Use casts in standard C function wrappers.
65 (ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.
66
672015-02-16 Werner Lemberg <wl@gnu.org>
68
Werner Lemberg0814b802015-02-16 07:29:53 +010069 Fix Savannah bug #44261.
70
71 * builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
72 environment also while calling the configure script.
73
742015-02-16 Werner Lemberg <wl@gnu.org>
75
Werner Lemberg587351b2015-02-16 07:03:22 +010076 * include/internal/ftmemory.h: Add some `FT_Offset' casts.
77 (FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
78 FT_MEM_MOVE): Do it.
79
Werner Lemberg6d7d6362015-02-15 12:30:42 +0100802015-02-15 Werner Lemberg <wl@gnu.org>
81
Werner Lemberg48186b82015-02-16 06:37:36 +010082 [base] Clean up signedness issues in `ftdbgmem.c'.
83
84 Also fix other minor issues.
85
86 * src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
87 with FT_Long for consistency.
88 (ft_mem_primes): Change type to `FT_Int'.
89 (ft_mem_closest_prime, ft_mem_table_set): Updated.
90
91 (ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
92 ft_mem_debug_realloc): Use `static' keyword and fix signedness
93 warnings where necessary.
94
95 (ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
96 ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
97 and add or remove casts to avoid signedness warnings.
98
992015-02-15 Werner Lemberg <wl@gnu.org>
100
Werner Lemberg6d7d6362015-02-15 12:30:42 +0100101 [base] Clean up signedness in arithmetic functions.
102
103 This makes the code more readable and reduces compiler warnings.
104
105 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
106 FT_DivFix): Convert input parameters to unsigned, do the
107 computation, then convert the result back to signed.
108 (ft_corner_orientation): Fix casts.
109
Werner Lemberg92359bd2015-02-07 09:47:23 +01001102015-02-07 Werner Lemberg <wl@gnu.org>
111
112 [sfnt] Fix Savannah bug #44184.
113
114 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
115 longer reject `htmx' and `vmtx' tables with invalid length but
116 sanitize them.
117
Jon Anderson416d8792015-02-06 10:16:45 +01001182015-02-06 Jon Anderson <jon@websupergoo.com>
119
120 [truetype] Fix regression in the incremental glyph loader.
121
122 * src/truetype/ttgload.c (load_truetype_glyph): For incremental
123 fonts, the glyph index may be greater than the number of glyphs
124 indicated, so guard the check with a preprocessor conditional.
125
Werner Lembergb6cb4992015-02-06 08:46:06 +01001262015-02-06 Werner Lemberg <wl@gnu.org>
127
128 [autofit] Fix potential memory leak.
129
130 While this doesn't show up with FreeType, exactly the same code
131 leaks with ttfautohint's modified auto-hinter code (which gets used
132 in a slightly different way).
133
134 It certainly doesn't harm since it is similar to already existing
135 checks in the code for embedded arrays.
136
137 * src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
138 and `max_points' for all cases.
139
Werner Lemberg19146a52015-01-31 11:01:33 +01001402015-01-31 Werner Lemberg <wl@gnu.org>
141
142 [autofit] Add support for Thai script.
143
144 Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
145 zone characters!
146
147 * src/autofit/afblue.dat: Add blue zone data for Thai.
148
149 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
150
151 * src/autofit/afscript.h: Add Thai standard characters.
152
153 * src/autofit/afranges.c: Add Thai data.
154
155 * src/autofit/afstyles.h: Add Thai data.
156
Behdad Esfahbod264b5e42015-01-23 21:23:55 +01001572015-01-23 Behdad Esfahbod <behdad@behdad.org>
158
159 [raster] Handle `FT_RASTER_FLAG_AA' correctly.
160
161 This fixes a breakage caused by the commit `[raster] Remove
162 5-level gray AA mode from monochrome rasterizer.'.
163
Werner Lembergd2c531e2015-01-23 22:37:42 +0100164 Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.
Behdad Esfahbod264b5e42015-01-23 21:23:55 +0100165
166 * src/raster/ftraster.c (ft_black_render): Handle
167 `FT_RASTER_FLAG_AA'.
168
169 * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
170 remnants.
171
Werner Lemberg79a5ac62015-01-18 07:30:04 +01001722015-01-18 Werner Lemberg <wl@gnu.org>
173
174 * src/base/ftobjs.c (FT_New_Library): Fix compiler warning.
175
Chris Liddell942aa5f2015-01-18 07:29:48 +01001762015-01-18 Chris Liddell <chris.liddell@artifex.com>
177
178 [raster] Fix Savannah bug #44022.
179
180 Add fallback for glyphs with degenerate bounding boxes.
181
182 If a glyph has only one very narrow feature, the bbox can end up
183 with either the width or height of the bbox being 0, in which case
184 no raster memory is allocated and no attempt is made to render the
185 glyph. This is less than ideal when the drop-out compensation in
186 the rendering code would actually result in the glyph being
187 rendered.
188
189 This problem can be observed with the `I' glyph (gid 47) in the
190 Autodesk RomanS TrueType font.
191
192 * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
193 dimension is zero to explicitly round up/down (instead of simply
194 round).
195
Werner Lemberg50be00d2015-01-17 20:38:31 +01001962015-01-17 Werner Lemberg <wl@gnu.org>
197
198 Add some tools to handle yearly copyright notice updates.
199
200 We are now following the GNU guidelines: A new release automatically
201 means that the copyright year of all affected files gets updated; it
202 is no longer used to track years of modification changes.
203
204 * src/tools/update-copyright-year: New Perl script.
205 * src/tools/update-copyright: New shell script that calls
206 `update-copyright-year' on all files.
207 * src/tools/no-copyright: Exceptions that should not be handled by
208 `update-copyright'
209
Werner Lemberg4eff8542015-01-14 20:06:19 +01002102015-01-14 Werner Lemberg <wl@gnu.org>
211
212 * docs/CHANGES: Updated, using a description from Behdad.
213
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +01002142015-01-14 Behdad Esfahbod <behdad@behdad.org>
215
Behdad Esfahbod48c86622015-01-14 19:38:36 +0100216 * src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.
217
2182015-01-14 Behdad Esfahbod <behdad@behdad.org>
219
Behdad Esfahbod56ddafa2015-01-14 19:36:02 +0100220 [autofit] Add embedded array of segments and edges.
221
222 Avoids multiple mallocs per typical glyphs.
223
224 With this and recent changes to avoid mallocs, the thread-safe
225 stack-based loader is now as fast as the previous model that had one
226 cached singleton.
227
228 * src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
229 New macros.
230 (AF_AxisHintsRec): Add two arrays for segments and edges.
231
232 * src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
233 data if number of segments exceeds given threshold value.
234 (af_axis_hints_new_edge): Only allocate data if number of edges
235 exceeds given threshold value.
236 (af_glyph_hints_done): Updated.
237
2382015-01-14 Behdad Esfahbod <behdad@behdad.org>
239
Behdad Esfahbod6f16b102015-01-14 19:26:49 +0100240 [autofit] Add embedded arrays for points and contours.
241
242 This avoids at least two malloc calls for typical glyphs.
243
244 * src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
245 New macros.
246 (AF_GlyphHintsRec): Add two arrays for contours and points.
247
248 * src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
249 Updated.
250 (af_glyph_hints_reload): Only allocate data if number of contours or
251 points exceeds given threshold values.
252
2532015-01-14 Behdad Esfahbod <behdad@behdad.org>
254
Behdad Esfahbodc2733652015-01-14 19:16:12 +0100255 [autofit] Allocate hints object on the stack.
256
257 This avoids one malloc per load.
258
259 * src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
260 `AF_GlyphHints'.
261 Update prototype.
262
263 * src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
264 parameter instead of `FT_Memory'.
265 (af_loader_done): Directly reset `load_hints'.
266 (af_loader_load_g): Updated.
267
268 * src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
269 `hints' object.
270
2712015-01-14 Behdad Esfahbod <behdad@behdad.org>
272
Behdad Esfahboda4117fb2015-01-14 19:07:54 +0100273 [autofit] Reuse slot glyph loader.
274
275 No need to create a new glyph loader; we can reuse the one from
276 `slot->internal->loader'. It's hard to tell why it was written that
277 way originally, but new code looks sound and correct to me, and
278 avoids lots of allocations.
279
280 * src/autofit/afloader.c (af_loader_init): Change return type to
281 `void'.
282 Don't call `FT_GlyphLoader_New'.
283 (af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
284 (af_loader_load_g): Update code to use `internal->loader', which
285 doesn't need copying of data.
286
287 * src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
288 Update prototype.
289
290 * src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.
291
2922015-01-14 Behdad Esfahbod <behdad@behdad.org>
293
Behdad Esfahbodae6699f2015-01-14 18:55:39 +0100294 [autofit] Remove (unused) support for composite glyphs.
295
296 We never have to deal with composite glyphs in the autohinter, as
297 those will be loaded into FORMAT_OUTLINE by the recursed
298 `FT_Load_Glyph' function.
299
300 In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
301 FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
302 FT_LOAD_NO_HINTING:
303
304 /* resolve load flags dependencies */
305
306 if ( load_flags & FT_LOAD_NO_RECURSE )
307 load_flags |= FT_LOAD_NO_SCALE |
308 FT_LOAD_IGNORE_TRANSFORM;
309
310 if ( load_flags & FT_LOAD_NO_SCALE )
311 {
312 load_flags |= FT_LOAD_NO_HINTING |
313 FT_LOAD_NO_BITMAP;
314
315 load_flags &= ~FT_LOAD_RENDER;
316 }
317
318 and as such the auto-hinter is never called. Thus, the recursion in
319 `af_loader_load_g' never actually happens. So remove the depth
320 counter as well.
321
322 * src/autofit/afloader.c (af_loader_load_g): Remove `depth'
323 parameter.
324 <FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
325 (af_loader_load_glyph): Updated.
326
3272015-01-14 Behdad Esfahbod <behdad@behdad.org>
328
Behdad Esfahbodc242fe42015-01-14 18:48:14 +0100329 [raster] Fix uninitialized memory access.
330
331 Apparently `ras.cProfile' might be uninitialized. This will be the
332 case if `ras.top == ras.cProfile->offset', as can be seen in
333 `End_Profile'. The overshoot code introduced in a change `Fix B/W
334 rasterization of subglyphs with different drop-out modes.' (from
335 2009-06-18) violated this, accessing `ras.cProfile->flags'
336 unconditionally just before calling `End_Profile' (which then
337 detected that `cProfile' is uninitialized and didn't touch it).
338
339 This was harmless, and was not detected by valgrind before because
340 the objects were allocated on the `raster_pool', which was always
341 initialized. With recent change to allocate raster buffers on the
342 stack, valgrind now reported this invalid access.
343
344 * src/raster/ftraster.c (Convert_Glyph): Don't access an
345 uninitialized `cProfile'.
346
3472015-01-14 Behdad Esfahbod <behdad@behdad.org>
348
Behdad Esfahbodb2ba6862015-01-14 18:43:13 +0100349 [smooth] Fix uninitialized memory access.
350
351 Looks like `ras.span_y' could always be used without initialization.
352 This was never detected by valgrind before because the library-wide
353 `raster_pool' was used for the worker object and `raster_pool' was
354 originally zero'ed. But subsequent reuses of it were using `span_y'
355 uninitialized. With the recent change to not use `render_pool' and
356 allocate worker and buffer on the stack, valgrind now detects this
357 uninitialized access.
358
359 * src/smooth/ftgrays.c (gray_raster_render): Initialize
360 `ras.span_y'.
361
3622015-01-14 Behdad Esfahbod <behdad@behdad.org>
363
Behdad Esfahbod603292d2015-01-14 18:35:56 +0100364 [base] Don't initialize unused `driver->glyph_loader'.
365
366 * src/base/ftobjs.c (Destroy_Driver): Don't call
367 `FT_GlyphLoader_Done'.
368 (FT_Add_Module): Don't call `FT_GlyphLoader_New'.
369
3702015-01-14 Behdad Esfahbod <behdad@behdad.org>
371
Behdad Esfahbod51634252015-01-14 18:30:59 +0100372 [base] Don't allocate `library->raster_pool' anymore.
373
374 It's unused after the following commits:
375
376 [raster] Allocate render pool for mono rasterizer on the stack.
377 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
378
379 The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
380 serve, which is, to adjust the pool size. But the pool is now
381 allocated on the stack on demand.
382
383 * src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.
384
3852015-01-14 Behdad Esfahbod <behdad@behdad.org>
386
Behdad Esfahbod6dfdaf42015-01-14 18:21:13 +0100387 [base] Do not reorder library->renderers upon use.
388
389 Instead of keeping `library->renderers' in a MRU order, just leave
390 it as-is. The MRU machinery wasn't thread-safe.
391
392 With this patch, rasterizing glyphs from different faces from
393 different threads doesn't fail choosing rasterizer
394 (FT_Err_Cannot_Render_Glyph).
395
396 Easiest to see that crash was to add a `printf' (or otherwise let
397 thread yield in FT_Throw with debugging enabled).
398
399 * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
400 (FT_Outline_Render): Don't call `FT_Set_Renderer'.
401
4022015-01-14 Behdad Esfahbod <behdad@behdad.org>
403
Behdad Esfahboda773c302015-01-14 18:16:20 +0100404 [raster] Allocate render pool for mono rasterizer on the stack.
405
406 Instead of using the `render_pool' member of `FT_Library' that is
407 provided down to the rasterizer, completely ignore that and allocate
408 needed objects on the stack instead.
409
410 With this patch, rasterizing glyphs from different faces from
411 different threads doesn't crash in the monochrome rasterizer.
412
413 * src/raster/ftraster.c (black_TRaster): Remove `buffer',
414 `buffer_size', and `worker' members.
415
416 (ft_black_render): Create `buffer' locally.
417 (ft_black_reset): Updated.
418
4192015-01-14 Behdad Esfahbod <behdad@behdad.org>
420
Behdad Esfahbod8dc86352015-01-14 18:06:22 +0100421 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
422
423 It was off by default and couldn't be turned on at runtime. And the
424 smooth rasterizer superceded it over ten years ago. No point in
425 keeping. Comments suggested that it was there for compatibility
426 with FreeType 1.
427
428 550 lines down.
429
430 * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
431 RASTER_GRAY_LINES): Remove macros and all associated code.
432
433 (black_TWorker): Remove `gray_min_x' and `gray_max_x'.
434 (black_TRaster): Remove `grays' and `gray_width'.
435
436 (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
437 ft_black_render): Updated.
438
439 * src/raster/ftrend1.c (ft_raster1_render): Simplify code.
440 (ft_raster5_renderer_class): Removed.
441
4422015-01-14 Behdad Esfahbod <behdad@behdad.org>
443
Behdad Esfahbod747ae2c2015-01-14 17:54:26 +0100444 [smooth] Allocate render pool for smooth rasterizer on the stack.
445
446 Instead of using the `render_pool' member of `FT_Library' that is
447 provided down to the rasterizer, completely ignore that and allocate
448 needed objects on the stack instead.
449
450 With this patch, rasterizing glyphs from different faces from
451 different threads doesn't crash in the smooth rasterizer.
452
453 Bugs:
454
455 https://bugzilla.redhat.com/show_bug.cgi?id=678397
456 https://bugzilla.redhat.com/show_bug.cgi?id=1004315
457 https://bugzilla.redhat.com/show_bug.cgi?id=1165471
458 https://bugs.freedesktop.org/show_bug.cgi?id=69034
459
460 * src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
461 `buffer_size', `band_size', and `worker' members.
462
463 (gray_raster_render): Create `buffer', `buffer_size', and
464 `band_size' locally.
465 (gray_raster_reset): Updated.
466
4672015-01-14 Behdad Esfahbod <behdad@behdad.org>
468
Behdad Esfahbod531d4632015-01-14 17:46:55 +0100469 [truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
470
471 Previously the code had stipulation for using a per-TT_Size exec
472 context if `size->debug' was true. But there was no way that
473 `size->debug' could *ever* be true. As such, the code was always
474 using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
475 This was, clearly, not threadsafe.
476
477 With this patch, loading glyphs from different faces from different
478 threads doesn't crash in the bytecode loader code.
479
480 * src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
481 (TT_DriverRec): Remove `context' member.
482
483 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
484 `TT_ExecContext' code related to a global `TT_Driver' object.
485
486 (tt_driver_done): Don't remove `TT_ExecContext' object here but ...
487 (tt_size_done_bytecode): ... here.
488
489 (tt_driver_init): Don't create `TT_ExecContext' object here but ...
490 (tt_size_init_bytecode): ... here, only on demand.
491
492 * src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
493 code.
494 (TT_New_Context): Remove `TT_ExecContext' code related to a global
495 `TT_Driver' object.
496
497 * src/truetype/ttinterp.h: Updated.
498
499 * src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
500
5012015-01-14 Behdad Esfahbod <behdad@behdad.org>
502
Behdad Esfahbod89bc8d42015-01-14 16:01:19 +0100503 [autofit] Allocate AF_Loader on the stack instead of AF_Module.
504
505 Stop sharing a global `AF_Loader'. Allocate one on the stack during
506 glyph load.
507
508 Right now this results in about 25% slowdown, to be fixed in a
509 following commit.
510
511 With this patch loading glyphs from different faces from different
512 threads doesn't immediately crash in the autohinting loader code.
513
514 Bugs:
515
516 https://bugzilla.redhat.com/show_bug.cgi?id=1164941
517
518 * src/autofit/afloader.c (af_loader_init): Pass
519 `AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
520 (af_loader_reset, af_loader_load_glyph): Also pass `loader' as
521 argument.
522 (af_loader_done): Use `AF_Loader' instead of `AF_Module' as
523 argument.
524
525 * src/autofit/afmodule.c (af_autofitter_init): Don't call
526 `af_loader_init'.
527 (af_autofitter_done): Don't call `af_loader_done'.
528 (af_autofitter_load_glyph): Use a local `AF_Loader' object.
529
530 * src/autofit/afloader.h: Include `afmodule.h'.
531 Update prototypes.
532 Move typedef for `AF_Module' to...
533
534 * src/autofit/afmodule.h: ... this place.
535 No longer include `afloader.h'.
536
5372015-01-14 Behdad Esfahbod <behdad@behdad.org>
538
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +0100539 * src/type42/t42objs.h (T42_DriverRec): Remove unused member.
540
Werner Lemberg36d03c92015-01-12 11:26:30 +01005412015-01-12 Werner Lemberg <wl@gnu.org>
542
543 Fix Savannah bug #43976.
544
545 Assure that FreeType's internal include directories are found before
546 `CPPFLAGS' (which might be set by the user in the environment), and
547 `CPPFLAGS' before `CFLAGS'.
548
549 * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
550 (FT_COMPILE): Make this a special variable for compiling only the
551 files handled in `freetype.mk'.
552 (.c.$O): Removed, unused.
553
554 * src/*/rules.mk (*_COMPILE): Fix order of include directories.
555
Werner Lembergd03a67a2015-01-11 08:39:14 +01005562015-01-11 Werner Lemberg <wl@gnu.org>
557
Werner Lemberg95b57052015-01-11 09:50:49 +0100558 [truetype] Prettyfing.
559
560 * src/truetype/ttinterp.c (project, dualproj, fast_project,
561 fast_dualproj): Rename to...
562 (PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.
563
5642015-01-11 Werner Lemberg <wl@gnu.org>
565
Werner Lembergea173c02015-01-11 08:58:54 +0100566 * src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.
567
568 Based on a patch from Behdad.
569
5702015-01-11 Werner Lemberg <wl@gnu.org>
571
Werner Lemberg628578c2015-01-11 08:53:31 +0100572 * src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.
573
5742015-01-11 Werner Lemberg <wl@gnu.org>
575
Werner Lemberg08e79092015-01-11 08:45:50 +0100576 * src/truetype/ttinterp.c (Normalize): Remove unused argument.
577
5782015-01-11 Werner Lemberg <wl@gnu.org>
579
Werner Lembergd03a67a2015-01-11 08:39:14 +0100580 [truetype] More macro expansions.
581
Werner Lemberg4aaadf42015-01-11 08:42:28 +0100582 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
583 expansion.
584
5852015-01-11 Werner Lemberg <wl@gnu.org>
586
587 [truetype] More macro expansions.
588
Werner Lembergd03a67a2015-01-11 08:39:14 +0100589 * src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
590 adjusting funtion calls where necessary.
591 (FT_UNUSED_ARG): Removed, no longer needed.
592
Werner Lemberg1b4d68c2015-01-10 19:56:28 +01005932015-01-10 Werner Lemberg <wl@gnu.org>
594
Werner Lembergeb341362015-01-11 00:23:27 +0100595 [truetype] More macro expansions.
596
597 Based on a patch from Behdad.
598
599 * src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
600 `Ins_*' functions.
601 (TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
602 (ARRAY_BOUND_ERROR): Remove second definition, which is no longer
603 needed.
604 (Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
605 (Ins_SxyTCA): New function.
606
6072015-01-10 Werner Lemberg <wl@gnu.org>
608
Werner Lemberg01be1302015-01-10 23:05:37 +0100609 [truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.
610
611 Behdad suggested this code simplification, and nobody objected...
612
613 * include/config/ftoption.h, devel/ftoption.h
614 (TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.
615
616 * src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
617 Remove related code.
618 (ARRAY_BOUND_ERROR): Use do-while loop.
619
6202015-01-10 Werner Lemberg <wl@gnu.org>
621
Werner Lembergfae0c812015-01-10 20:23:10 +0100622 [truetype] More macro expansions.
623
Werner Lemberg6cc1f122015-01-10 21:56:59 +0100624 * src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
625 EXEC_ARG): Remove by replacing with expansion.
626
6272015-01-10 Werner Lemberg <wl@gnu.org>
628
629 [truetype] More macro expansions.
630
Werner Lemberg24681452015-01-10 21:53:48 +0100631 Based on a patch from Behdad.
632
633 * src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
634 SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
635 CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
636 CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
637 CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
638 COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
639 with expansion.
640
641 (Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
642 CUR_fast_dualproj): Replace with macros `project', `dualproj',
643 `fast_project', `fast_dualproj'.
644
6452015-01-10 Werner Lemberg <wl@gnu.org>
646
647 [truetype] More macro expansions.
648
Werner Lembergfae0c812015-01-10 20:23:10 +0100649 * src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
650 with expansion.
651
6522015-01-10 Werner Lemberg <wl@gnu.org>
653
Werner Lemberg5a752f32015-01-10 20:08:35 +0100654 [truetype] Remove code for static TrueType interpreter.
655
656 This is a follow-up patch.
657
658 * src/truetype/ttinterp.c, src/truetype/ttinterp.h
659 [TT_CONFIG_OPTION_STATIC_INTERPRETER,
660 TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.
661
6622015-01-10 Werner Lemberg <wl@gnu.org>
663
Werner Lemberg1b4d68c2015-01-10 19:56:28 +0100664 * src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.
665
666 This starts a series of patches that simplifies the code of the
667 bytecode interpreter.
668
Werner Lemberg232bd942014-12-30 21:44:51 +01006692014-12-30 Werner Lemberg <wl@gnu.org>
670
671 * Version 2.5.5 released.
672 =========================
673
674
675 Tag sources with `VER-2-5-5'.
676
677 * docs/VERSION.DLL: Update documentation and bump version number to
678 2.5.5.
679
680 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
681 builds/windows/vc2005/index.html,
682 builds/windows/vc2008/freetype.vcproj,
683 builds/windows/vc2008/index.html,
684 builds/windows/vc2010/freetype.vcxproj,
685 builds/windows/vc2010/index.html,
686 builds/windows/visualc/freetype.dsp,
687 builds/windows/visualc/freetype.vcproj,
688 builds/windows/visualc/index.html,
689 builds/windows/visualce/freetype.dsp,
690 builds/windows/visualce/freetype.vcproj,
691 builds/windows/visualce/index.html,
692 builds/wince/vc2005-ce/freetype.vcproj,
693 builds/wince/vc2005-ce/index.html,
694 builds/wince/vc2008-ce/freetype.vcproj,
695 builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
696
697 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
698
699 * builds/unix/configure.raw (version_info): Set to 17:4:11.
700 * CMakeLists.txt (VERSION_PATCH): Set to 5.
701 * docs/CHANGES: Updated.
702
703 * builds/toplevel.mk (dist): Fix typos.
704
Alexei Podtelezhnikov70241552014-12-24 12:11:46 -05007052014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com>
706
707 [base] Formatting and nanooptimizations.
708
709 * src/base/ftcalc.c,
710 * src/base/fttrigon.c: Revise sign restoration.
711
Werner Lemberg06842c72014-12-13 07:42:51 +01007122014-12-13 Werner Lemberg <wl@gnu.org>
713
714 * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
715
Werner Lembergb9438112014-12-11 13:33:14 +01007162014-12-11 Werner Lemberg <wl@gnu.org>
717
Werner Lemberg82119502014-12-11 22:27:06 +0100718 * builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
719
720 Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
721 (contrary to GNU tar), so force the POSIX-1.1988 format.
722
723 Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
724
7252014-12-11 Werner Lemberg <wl@gnu.org>
726
Werner Lemberg812ed342014-12-11 14:07:29 +0100727 * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
728
7292014-12-11 Werner Lemberg <wl@gnu.org>
730
Werner Lembergc9ca6ff2014-12-11 13:39:39 +0100731 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
732
733 Problem reported by Dennis Felsing <dennis@felsin9.de>.
734
7352014-12-11 Werner Lemberg <wl@gnu.org>
736
Werner Lembergb9438112014-12-11 13:33:14 +0100737 * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
738
739 Problem reported by Dennis Felsing <dennis@felsin9.de>.
740
suzuki toshiya2b592822014-12-10 00:27:41 +09007412014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
742
suzuki toshiya9bd1e552014-12-09 14:51:52 +0900743 [gxvalid] Fix a naming convention conflicting with ftvalid.
744
745 See previous changeset for otvalid.
746
747 * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
748 `valid' by `gxvalid'.
749 * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
750 gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
751 gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
752 gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
753 gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
754 it is typed as GXV_Validator.
755
7562014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
757
suzuki toshiya51abdf62014-12-09 00:58:04 +0900758 [otvalid] Fix a naming convention conflicting with ftvalid.
759
760 Some prototypes in ftvalid.h use `valid' for the variables
761 typed as FT_Validator. Their implementations in src/base/
762 ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
763
764 Some macros in otvcommn.h assume the exist of the variable
765 `valid' typed as OTV_Validator in the caller.
766
767 Mixing these two conventions cause invalid pointer conversion
768 and unexpected SEGV in longjmp. To prevent it, all variables
769 typed as OTV_Validator are renamed to `otvalid'.
770
771 * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
772 * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
773 otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
774 if it is typed as OTV_Validator.
775
7762014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
777
suzuki toshiya2b592822014-12-10 00:27:41 +0900778 [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
779
780 Original patch is designed by Werner Lemberg. Extra part
781 for otvalid and gxvalid are added by suzuki toshiya, see
782 discussion:
783 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
784 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
785
786 * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
787 * src/gxvalid/gxvcommn.h: Ditto.
788 * src/otvalid/otvcommn.h: Ditto.
789
Werner Lemberg74af85c2014-12-08 16:01:50 +01007902014-12-08 Werner Lemberg <wl@gnu.org>
791
792 [pcf] Fix Savannah bug #43774.
793
794 Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
795 functions. Since the PCF format doesn't have an official
796 specification, we have to exactly follow these functions' behaviour.
797
798 The problem was unveiled with a patch from 2014-11-06, fixing issue
799 #43547.
800
801 * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
802 element. Instead, assign real size.
803
Werner Lemberg66883b52014-12-07 09:17:06 +01008042014-12-07 Werner Lemberg <wl@gnu.org>
805
Werner Lemberg553c9672014-12-07 19:29:52 +0100806 Work around a bug in Borland's C++ compiler.
807
808 See
809
810 http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
811
812 for Borland's bug tracker entry.
813
814 Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
815 http://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
816
817 * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
818 (gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
819
8202014-12-07 Werner Lemberg <wl@gnu.org>
821
Werner Lemberg9870d6d2014-12-07 09:40:47 +0100822 */*: Decorate hex constants with `U' and `L' where appropriate.
823
8242014-12-07 Werner Lemberg <wl@gnu.org>
825
Werner Lemberg66883b52014-12-07 09:17:06 +0100826 [truetype] Prevent memory leak for buggy fonts.
827
828 * src/truetype/ttobjs.c (tt_size_done): Unconditionally call
829 `tt_size_done_bytecode'.
830
Werner Lemberg94926682014-12-06 07:11:44 +01008312014-12-06 Werner Lemberg <wl@gnu.org>
832
833 * Version 2.5.4 released.
834 =========================
835
836
837 Tag sources with `VER-2-5-4'.
838
839 * docs/VERSION.DLL: Update documentation and bump version number to
840 2.5.4.
841
842 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
843 builds/windows/vc2005/index.html,
844 builds/windows/vc2008/freetype.vcproj,
845 builds/windows/vc2008/index.html,
846 builds/windows/vc2010/freetype.vcxproj,
847 builds/windows/vc2010/index.html,
848 builds/windows/visualc/freetype.dsp,
849 builds/windows/visualc/freetype.vcproj,
850 builds/windows/visualc/index.html,
851 builds/windows/visualce/freetype.dsp,
852 builds/windows/visualce/freetype.vcproj,
853 builds/windows/visualce/index.html,
854 builds/wince/vc2005-ce/freetype.vcproj,
855 builds/wince/vc2005-ce/index.html,
856 builds/wince/vc2008-ce/freetype.vcproj,
857 builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/.
858
859 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
860
861 * builds/unix/configure.raw (version_info): Set to 17:3:11.
862 * CMakeLists.txt (VERSION_PATCH): Set to 4.
863 * docs/CHANGES: Updated.
864
Werner Lemberg934ef382014-12-04 06:38:51 +01008652014-12-04 Werner Lemberg <wl@gnu.org>
866
867 docs/CHANGES: Updated, formatted.
868
Dave Arnold2cdc4562014-12-04 06:10:16 +01008692014-12-04 Dave Arnold <darnold@adobe.com>
870
Dave Arnoldf89396c2014-12-04 06:17:26 +0100871 [cff] Modify an FT_ASSERT.
872
873 * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
874 bug #43661, the test font `...aspartam.otf' still triggers an
875 FT_ASSERT. Since hintmap still works with count==0, ...
876 (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
877 suppress the assert.
878
8792014-12-04 Dave Arnold <darnold@adobe.com>
880
Dave Arnold2cdc4562014-12-04 06:10:16 +0100881 [cff] Fix Savannah bug #43661.
882
883 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
884 cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
885 hintmask is constructed.
886
887 * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
888 avoid reading past end of hintmask.
889
Werner Lemberg16188eb2014-12-03 10:18:34 +01008902014-12-03 Werner Lemberg <wl@gnu.org>
891
Werner Lemberg8fa69a82014-12-03 20:07:14 +0100892 docs/CHANGES: Updated.
893
8942014-12-03 Werner Lemberg <wl@gnu.org>
895
Werner Lemberga632b5f2014-12-03 19:30:44 +0100896 [autofit] Better fix for conversion specifiers in debug messages.
897
898 Using `%ld' for pointer differences causes warnings on 32bit
899 platforms. The correct type would be (the relatively new) `%td',
900 however, this is missing on some important platforms.
901
902 This patch improves the change from 2014-11-28.
903
904 * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our
905 pointer differences are always sufficiently small.
906 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
907 af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
908
9092014-12-03 Werner Lemberg <wl@gnu.org>
910
Werner Lemberg16188eb2014-12-03 10:18:34 +0100911 FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
912
913 All public FreeType enumeration and flag values are uppercase...
914
915 * include/tttables.h (FT_Sfnt_Tag): Implement it. For backwards
916 compatilibity, retain the old values as macros.
917
918 * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
919 (get_sfnt_table): Updated.
920
Werner Lemberg2af25ac2014-12-02 08:38:57 +01009212014-12-02 Werner Lemberg <wl@gnu.org>
922
Werner Lembergde43ace2014-12-02 23:06:04 +0100923 * include/*: Improve structure of documentation.
924
925 . Add and update many `<Order>' tags.
926 . Apply various documentation fixes.
927 . Remove details to deprecated (or never implemented) data.
928
9292014-12-02 Werner Lemberg <wl@gnu.org>
930
Werner Lembergca1f5cc2014-12-02 22:49:25 +0100931 [docmaker] Always handle `<Order>' section elements.
932
933 Previously, those elements were handled only for sections present in
934 a `<Sections>' chapter element.
935
936 * src/tools/docmaker/content.py (ContentProcessor::finish):
937 Implement it.
938
9392014-12-02 Werner Lemberg <wl@gnu.org>
940
Werner Lembergef6a3522014-12-02 21:16:59 +0100941 [docmaker] Properly handle empty rows in Synopsis.
942
943 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
944 `&nbsp;' for empty fields.
945
9462014-12-02 Werner Lemberg <wl@gnu.org>
947
Werner Lemberg0e96f052014-12-02 11:08:31 +0100948 [docmaker] Thinko.
949
950 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
951 Emit `/empty/' string for first element also.
952
9532014-12-02 Werner Lemberg <wl@gnu.org>
954
Werner Lemberg102d4a72014-12-02 10:27:40 +0100955 [docmaker] Honour empty lines in `<Order>' section element.
956
957 This greatly improves the readability of the `Synopsis' links.
958
959 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
960 Insert string `/empty/' between items.
961
962 * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
963 robust against nonexistent keys.
964
965 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
966 empty <td> elements for `/empty/'.
967
9682014-12-02 Werner Lemberg <wl@gnu.org>
969
Werner Lemberg2af25ac2014-12-02 08:38:57 +0100970 [docmaker] Ensure Python 3 compatibility.
971
972 * src/tools/docmaker/content.py (ContentProcessor::set_section,
973 ContentProcessor::finish): Replace `has_key' function with `in'
974 keyword.
975
976 * src/tools/docmaker/formatter.py (Formatter::__init__): Replace
977 sorting function with a key generator.
978 (Formatter::add_identifier): Replace `has_key' function with `in'
979 keyword.
980
981 * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
982 Replace `has_key' function with `in' keyword.
983 (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
984 integer division.
985 s/<>/>/.
986
987 * src/tools/docmaker/utils.py: Import `itertools'.
988 (index_sort): Replaced by...
989 (index_key): ... this new key generator (doing exactly the same).
990
Werner Lemberg8f795112014-11-29 06:49:15 +01009912014-11-29 Werner Lemberg <wl@gnu.org>
992
Werner Lemberg80bfeb12014-12-01 10:07:52 +0100993 [docmaker] Don't output a block multiple times.
994
995 This bug was hidden by not processing all lines of `<Order>' blocks.
996
997 * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
998 out field names.
999
10002014-11-29 Werner Lemberg <wl@gnu.org>
1001
Werner Lemberg0dbad762014-12-01 08:44:48 +01001002 [docmaker] Use field values as HTML link targets where possible.
1003
1004 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
1005 Accept second, optional argument to specify a name.
1006 (HtmlFormatter::html_source_quote): Link to field ID if possible.
1007 (HtmlFormatter::print_html_field_list): Emit `id' attribute.
1008
10092014-11-29 Werner Lemberg <wl@gnu.org>
1010
Werner Lemberg785b1d02014-11-30 22:16:34 +01001011 [docmaker] Allow empty lines in `<Order>' blocks.
1012
1013 Before this patch, the suggested order of entries stopped at the
1014 first empty line.
1015
1016 Obviously, nobody noticed that this problem caused a much reduced
1017 set of links in the `Synopsis' sections; in particular, the
1018 `<Order>' blocks contain a lot of entries that wouldn't be listed
1019 otherwise...
1020
1021 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1022 New function to iterate over all items.
1023 (DocSection::process): Use it.
1024
10252014-11-29 Werner Lemberg <wl@gnu.org>
1026
Werner Lemberg16b3e622014-11-30 20:58:27 +01001027 * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
1028
1029 After the single asterisk there must be no other immediately following
1030 asterisk.
1031
10322014-11-29 Werner Lemberg <wl@gnu.org>
1033
Werner Lemberg434bc692014-11-29 23:12:55 +01001034 * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
Werner Lemberg51987ea2014-11-29 22:19:29 +01001035
Werner Lemberg434bc692014-11-29 23:12:55 +010010362014-11-29 Werner Lemberg <wl@gnu.org>
1037
1038 [docmaker] Improve HTML code for table of contents.
1039
1040 * src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
Werner Lemberg51987ea2014-11-29 22:19:29 +01001041 together with proper CSS.
1042
10432014-11-29 Werner Lemberg <wl@gnu.org>
1044
Werner Lembergaa834ce2014-11-29 20:08:29 +01001045 [docmaker] Provide higher-level markup and simplify HTML.
1046
1047 * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
1048 elements, use CSS descendants (of class `section') to format the
1049 data.
1050
1051 Also remove reduntant <p> and <br> elements, replacing them with
1052 proper CSS.
1053
1054 Globally reduce page width to 75%.
1055
1056 (block_header): Rename <div> class to `section'.
1057
10582014-11-29 Werner Lemberg <wl@gnu.org>
1059
Werner Lemberg3bb97022014-11-29 16:12:37 +01001060 [docmaker] Add `top' links after blocks.
1061
1062 * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
1063
10642014-11-29 Werner Lemberg <wl@gnu.org>
1065
Werner Lemberga31f9712014-11-29 07:18:44 +01001066 * src/tools/docmaker/tohtml.py: Improve CSS for fields.
1067
Werner Lemberg3bb97022014-11-29 16:12:37 +01001068 Make fields align horizontally relative to full line width.
Werner Lemberga31f9712014-11-29 07:18:44 +01001069
10702014-11-29 Werner Lemberg <wl@gnu.org>
1071
Werner Lemberg8f795112014-11-29 06:49:15 +01001072 * src/tools/docmaker/tohtml.py: Fix index and TOC templates.
1073
1074 This thinko was introduced 2014-11-27.
1075
Werner Lembergba1ba0c2014-11-28 22:04:14 +010010762014-11-28 Werner Lemberg <wl@gnu.org>
1077
1078 [docmaker] Format field lists with CSS.
1079
1080 This also simplifies the inserted HTML code.
1081
1082 * src/tools/docmaker/tohtml.py
1083 (HtmlFormatter::print_html_field_list): Do it.
1084
suzuki toshiya348fffa2014-11-28 16:05:59 +090010852014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1086
1087 Fix compiler warning to the comparison between signed and
1088 unsigned variable.
1089
1090 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
1091 between `ypos + ysize' and FT_INT_{MAX,MIN}.
1092
Werner Lembergba1ba0c2014-11-28 22:04:14 +010010932014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg984e0712014-11-28 05:33:58 +01001094
Werner Lembergba1ba0c2014-11-28 22:04:14 +01001095 [docmaker] Replace empty `<td>' with CSS.
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001096
1097 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
1098 it.
1099
Werner Lembergba1ba0c2014-11-28 22:04:14 +010011002014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001101
Werner Lemberg984e0712014-11-28 05:33:58 +01001102 [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
1103
1104 * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
1105 (source_*): Use `<div>'.
1106 (HtmlFormatter::block_enter): s/<h4>/<h3>/.
1107
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +090011082014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1109
1110 Fix compiler warning to conversion specifiers in debug messages.
1111
1112 * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
Werner Lemberga632b5f2014-12-03 19:30:44 +01001113 modifier to dump long integers.
1114 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +09001115
Werner Lemberg26d699e2014-11-27 19:22:52 +010011162014-11-27 Werner Lemberg <wl@gnu.org>
1117
Werner Lemberg984e0712014-11-28 05:33:58 +01001118 * src/tools/docmaker/tohtml.py: Use more CSS for index.
Werner Lemberg7ea36342014-11-27 19:38:31 +01001119
11202014-11-27 Werner Lemberg <wl@gnu.org>
1121
Werner Lembergedcf8172014-11-27 19:28:48 +01001122 [docmaker] Replace `name' attribute of `<a>' with `id'.
1123
1124 * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
1125
11262014-11-27 Werner Lemberg <wl@gnu.org>
1127
Werner Lemberg26d699e2014-11-27 19:22:52 +01001128 * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
1129
1130 For `Index' and `TOC' links, we now simply use the `text-align' CSS
1131 property of `<td>' to enforce flush-left and flush-right,
1132 eliminating the hack with an empty, full-width `<td>' element
1133 inbetween.
1134
1135 The change also enforces the same (smaller) size for all index and
1136 TOC links.
1137
suzuki toshiya2676e072014-11-28 00:58:25 +090011382014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1139
suzuki toshiya1b12f5d2014-11-28 01:22:26 +09001140 * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
1141 cf2font.c could not find it under `make multi' build.
1142
11432014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1144
suzuki toshiya2676e072014-11-28 00:58:25 +09001145 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
1146 unrequired negative value check for `width' and `height'.
1147
Werner Lemberg8585cf52014-11-27 10:49:05 +010011482014-11-27 Werner Lemberg <wl@gnu.org>
1149
Werner Lembergdd3fee02014-11-27 13:20:52 +01001150 * src/tools/docmaker/tohtml.py: More HTML table refactoring.
1151
1152 Replace some `<table>' tags with `<div>' to simplify structure.
1153
1154 Move `bgcolor' attribute to CSS.
1155
1156 Replace most `width' attributes with CSS. The remaining instances
1157 (providing a similar effect as LaTeX's `\hfill' command) are removed
1158 in a later patch.
1159
11602014-11-27 Werner Lemberg <wl@gnu.org>
1161
Werner Lemberga5ad26a2014-11-27 10:52:24 +01001162 * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
1163
11642014-11-27 Werner Lemberg <wl@gnu.org>
1165
Werner Lembergba67c612014-11-27 10:51:49 +01001166 * src/tools/docmaker/tohtml.py: Center <table> with CSS.
1167
11682014-11-27 Werner Lemberg <wl@gnu.org>
1169
Werner Lemberg5594fa52014-11-27 10:50:50 +01001170 * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
1171
11722014-11-27 Werner Lemberg <wl@gnu.org>
1173
Werner Lemberg8585cf52014-11-27 10:49:05 +01001174 * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
1175
1176 This starts a series of commits into the direction of generating
1177 valid HTML 5 code, especially using much more CSS.
1178
suzuki toshiya1b057042014-11-27 17:53:20 +090011792014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1180
1181 Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
1182 suggested by Alexei.
1183
1184 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
1185 negative values in `xpos' and `ypos + ysize'.
1186 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
1187 too negative values in `x_left' and `y_top'. Either negative
1188 values in `width' and `height' are checked.
1189
Werner Lemberg3d167cb2014-11-27 05:19:41 +010011902014-11-27 Werner Lemberg <wl@gnu.org>
1191
Werner Lembergc52882a2014-11-27 08:01:25 +01001192 [docmaker] Produce better HTML code.
1193
1194 * src/tools/docmaker/tohtml.py: Always use double quotes for
1195 attribute values.
1196 (source_footer): Close `td' and `tr' groups.
1197
11982014-11-27 Werner Lemberg <wl@gnu.org>
1199
Werner Lembergdbb93152014-11-27 07:20:48 +01001200 Use better way to disable creation of .pyc files for `make refdoc'.
1201
1202 Python 2.6 was released in 2008...
1203
1204 * builds/freetype.mk (refdoc): Use python's `-B' option.
1205
1206 * builds/detect.mk (std_setup, dos_setup): Mention required python
1207 version for `refdoc' target.
1208
12092014-11-27 Werner Lemberg <wl@gnu.org>
1210
Werner Lemberge8a5c332014-11-27 06:48:37 +01001211 * src/tools/docmaker/sources.py (re_bold, re_italic): Use
1212 non-grouping parentheses.
1213 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
1214 Updated.
1215
12162014-11-27 Werner Lemberg <wl@gnu.org>
1217
Werner Lemberg3d167cb2014-11-27 05:19:41 +01001218 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
1219
1220 Introdruced in previous change. Reported by Alexei.
1221
Werner Lemberga593a042014-11-26 18:42:48 +010012222014-11-26 Werner Lemberg <wl@gnu.org>
1223
Werner Lembergf34f1922014-11-26 21:59:21 +01001224 * src/*: Add checks for parameters of API functions where missing.
1225
1226 `API functions' are functions tagged with `FT_EXPORT_DEF'.
1227
1228 Besides trivial fixes, the following changes are included, too.
1229
1230 * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
1231 error code if no service is available.
1232
1233 * src/base/ftinit.c (FT_Done_FreeType): Change return value for
1234 invalid `library' parameter to `Invalid_Library_Handle'.
1235
1236 * src/base/ftobjs.c (FT_New_Size): Change return value for invalid
1237 `asize' parameter to `Invalid_Argument'.
1238
1239 * src/base/ftoutln.c (FT_Outline_Copy): Change return value for
1240 invalid `source' and `target' parameters to `Invalid_Outline'.
1241 (FT_Outline_Done_Internal): Change return value for invalid
1242 `outline' parameter to `Invalid_Outline'.
1243
12442014-11-26 Werner Lemberg <wl@gnu.org>
1245
Werner Lemberga593a042014-11-26 18:42:48 +01001246 * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
1247
suzuki toshiya5aff8532014-11-26 14:36:12 +090012482014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1249
suzuki toshiyacd4a5a22014-11-27 00:20:48 +09001250 * src/base/ftobj.c (Mac_Read_POST_Resource): Additional
1251 overflow check in the summation of POST fragment lengths,
1252 suggested by Mateusz Jurczyk <mjurczyk@google.com>.
1253
12542014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1255
suzuki toshiya1720e812014-11-26 16:39:00 +09001256 * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
1257 and fold too long tracing messages.
1258
12592014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1260
suzuki toshiya18a8f0d2014-11-26 16:11:38 +09001261 Fix Savannah bug #43540.
1262
1263 * src/base/ftmac.c (parse_fond): Prevent a buffer overrun
1264 caused by a font including too many (> 63) strings to store
1265 names[] table.
1266
12672014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1268
suzuki toshiya45331672014-11-26 16:02:17 +09001269 * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
1270 variables to read the lengths in POST fragments. Suggested by
1271 Mateusz Jurczyk <mjurczyk@google.com>.
1272
12732014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1274
suzuki toshiya35252ae2014-11-26 15:52:23 +09001275 Fix Savannah bug #43539.
1276
1277 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1278 by a broken POST table in resource-fork.
1279
12802014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1281
suzuki toshiya240c94a2014-11-26 15:43:29 +09001282 Fix Savannah bug #43538.
1283
1284 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1285 by a broken POST table in resource-fork.
1286
12872014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1288
suzuki toshiya5aff8532014-11-26 14:36:12 +09001289 * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
1290 by a broken POST table in resource-fork. Return after freeing
1291 the buffered POST table when it is found to be broken.
1292
Werner Lemberg04edbbd2014-11-25 10:21:13 +010012932014-11-25 Werner Lemberg <wl@gnu.org>
1294
Werner Lemberg02b8e7e2014-11-25 11:31:51 +01001295 */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
1296
12972014-11-25 Werner Lemberg <wl@gnu.org>
1298
Werner Lemberg0d4aa232014-11-25 11:26:14 +01001299 */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
1300
13012014-11-25 Werner Lemberg <wl@gnu.org>
1302
Werner Lembergf4f9e682014-11-25 11:11:55 +01001303 */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
1304
13052014-11-25 Werner Lemberg <wl@gnu.org>
1306
Werner Lemberg04c2aa12014-11-25 10:22:12 +01001307 */*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
1308
13092014-11-25 Werner Lemberg <wl@gnu.org>
1310
Werner Lemberg04edbbd2014-11-25 10:21:13 +01001311 */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
1312
Werner Lembergeca0f062014-11-24 10:22:08 +010013132014-11-24 Werner Lemberg <wl@gnu.org>
1314
Werner Lemberg3e867112014-11-25 09:01:07 +01001315 [Savannah bug #43682] Adjust some renderer callbacks.
1316
1317 * src/raster/ftraster.c (ft_black_set_mode): Change return type to
1318 `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
1319
1320 * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
1321 for orthogonality.
1322 (ft_grays_raster): Use it.
1323
Werner Lemberg04edbbd2014-11-25 10:21:13 +010013242014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg3e867112014-11-25 09:01:07 +01001325
Werner Lemberg6689a002014-11-25 08:53:09 +01001326 [Savannah bug #43682] Properly handle missing return errors.
1327
1328 The functions in this patch *do* return non-trivial errors that must
1329 be taken care of.
1330
1331 * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
1332 (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
1333 src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
1334 src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
1335 (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
1336 (load_truetype_glyph <subglyph loop>, tt_loader_init,
1337 TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
1338 src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
1339
Werner Lemberg04edbbd2014-11-25 10:21:13 +010013402014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg6689a002014-11-25 08:53:09 +01001341
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001342 [Savannah bug #43682] Add/remove `void' casts to some functions.
1343
1344 We use a cast to indicate that we intentionally ignore a function's
1345 return value. However, this doesn't apply to API functions where
1346 errors can only happen for trivially invalid input.
1347
1348 * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
1349 src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
1350 (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
1351 src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
1352 (t42_parse_encoding): Do it.
1353
Werner Lemberg04edbbd2014-11-25 10:21:13 +010013542014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001355
Werner Lembergef439fd2014-11-25 08:14:15 +01001356 [Savannah bug #43682] Change some signatures to `void' return type.
1357
1358 * include/internal/pshints.h (PSH_Globals_SetScaleFunc),
1359 include/internal/sfnt.h (TT_Get_Metrics_Func),
1360 src/pshinter/pshglob.c (psh_globals_set_scale),
1361 src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
1362 (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
1363 TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
1364 TT_Save_Context): Do it.
1365
1366 * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
1367 src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
1368 (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
1369 (tt_size_run_fpgm, tt_size_run_prep): Updated.
1370
13712014-11-24 Werner Lemberg <wl@gnu.org>
1372
Werner Lemberg6889f7b2014-11-24 17:16:08 +01001373 Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
1374
1375 This is no longer used.
1376
1377 * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
1378 src/sfnt/ttcmap.c: Do it.
1379
13802014-11-24 Werner Lemberg <wl@gnu.org>
1381
Werner Lembergf0292bb2014-11-24 10:51:21 +01001382 [sfnt] Fix Savannah bug #43680.
1383
1384 This adds an additional constraint to make the fix from 2013-01-25
1385 really work.
1386
1387 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
1388 Check `p' before `num_glyphs'.
1389
13902014-11-24 Werner Lemberg <wl@gnu.org>
1391
Werner Lembergeca0f062014-11-24 10:22:08 +01001392 [truetype] Fix Savannah bug #43679.
1393
1394 * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
1395 `record_size'.
1396
Jarkko Pöyry96341dc2014-11-24 09:53:07 +010013972014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com>
1398
1399 [cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
1400
Werner Lemberged6a9df2014-12-06 23:28:58 +01001401 Don't cast cmap init function pointers to an incompatible type.
Jarkko Pöyry96341dc2014-11-24 09:53:07 +01001402
1403 Without this patch, the number of parameters between declaration and
1404 the real signature differs. Calling such a function results in
1405 undefined behavior.
1406
1407 ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
1408 6.5.2.2 Function calls
1409 9 If the function is defined with a type that is not
1410 compatible with the type (of the expression) pointed to by
1411 the expression that denotes the called function, the
1412 behavior is undefined.
1413
1414 On certain platforms (c -> js with emscripten) this causes
1415 termination of execution or invalid calls because in the emscripten
1416 implementation, function pointers of different types are stored in
1417 different pointer arrays. Incorrect pointer type here results in
1418 indexing of an incorrect array.
1419
1420 * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
1421 src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
1422 t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
1423 t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
1424 signature.
1425
Werner Lemberga7a42072014-11-24 06:44:45 +010014262014-11-24 Werner Lemberg <wl@gnu.org>
1427
Werner Lembergf70d9342014-11-24 09:31:32 +01001428 [sfnt] Fix Savannah bug #43672.
1429
1430 * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
1431 minimum table length test.
1432
14332014-11-24 Werner Lemberg <wl@gnu.org>
1434
Werner Lemberg73be9f92014-11-24 07:30:05 +01001435 [type1, type42] Another fix for Savannah bug #43655.
1436
1437 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
1438 (t42_parse_charstrings): Add another boundary testing.
1439
14402014-11-24 Werner Lemberg <wl@gnu.org>
1441
Werner Lemberga7a42072014-11-24 06:44:45 +01001442 [docmaker] Formatting, copyright, improved documentation.
1443
1444 * src/tools/docmaker/*: No code changes besides trivial
1445 modifications.
1446
Werner Lemberg9bd20b72014-11-22 06:24:45 +010014472014-11-22 Werner Lemberg <wl@gnu.org>
1448
Werner Lembergaf834612014-11-22 13:29:10 +01001449 [bdf] Fix Savannah bug #43660.
1450
1451 * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
1452 `_BDF_GLYPH_BITS'.
1453
14542014-11-22 Werner Lemberg <wl@gnu.org>
1455
Werner Lemberg42fcd662014-11-22 12:44:33 +01001456 [type42] Allow only embedded TrueType fonts.
1457
1458 This is a follow-up to Savannah bug #43659.
1459
1460 * src/type42/t42objs.c (T42_Face_Init): Exclusively use the
1461 `truetype' font driver for loading the font contained in the `sfnts'
1462 array.
1463
14642014-11-22 Werner Lemberg <wl@gnu.org>
1465
Werner Lemberg37881872014-11-22 10:46:47 +01001466 [type42] Fix Savannah bug #43659.
1467
1468 * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
1469
1470 * src/type42/t42parse.c (t42_parse_sfnts): Always set
1471 `face->ttf_size' directly. This ensures a correct stream size in
1472 the call to `FT_Open_Face', which follows after parsing, even for
1473 buggy input data.
1474 Fix error messages.
1475
14762014-11-22 Werner Lemberg <wl@gnu.org>
1477
Werner Lemberg5f201ab2014-11-22 09:16:39 +01001478 [cff] Fix Savannah bug #43658.
1479
1480 * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
1481 return values of point allocation routines.
1482
14832014-11-22 Werner Lemberg <wl@gnu.org>
1484
Werner Lemberg9bd20b72014-11-22 06:24:45 +01001485 [sfnt] Fix Savannah bug #43656.
1486
1487 * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
1488 tests.
1489
Werner Lemberg6de76172014-11-21 06:05:49 +010014902014-11-21 Werner Lemberg <wl@gnu.org>
1491
Werner Lembergdd897102014-11-21 22:19:28 +01001492 [type1, type42] Fix Savannah bug #43655.
1493
1494 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
1495 (t42_parse_charstrings): Fix boundary testing.
1496
14972014-11-21 Werner Lemberg <wl@gnu.org>
1498
Werner Lembergb1fc00d2014-11-21 12:06:40 +01001499 * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
1500
15012014-11-21 Werner Lemberg <wl@gnu.org>
1502
Werner Lemberg9154dab2014-11-21 08:03:51 +01001503 [ftlcdfil] Obey flow direction.
1504
1505 * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
1506 Handle `up' flow.
1507
15082014-11-21 Werner Lemberg <wl@gnu.org>
1509
Werner Lemberg644d6fa2014-11-21 07:28:50 +01001510 * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
1511
1512 This commit completes argument checks and adds support for different
1513 flow directions.
1514
15152014-11-21 Werner Lemberg <wl@gnu.org>
1516
Werner Lemberg6de76172014-11-21 06:05:49 +01001517 * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
1518
1519 This commit adds argument checks and support for different flow
1520 directions.
1521
Werner Lemberg1e6e1b82014-11-20 21:07:56 +010015222014-11-20 Werner Lemberg <wl@gnu.org>
1523
1524 * src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
1525
Werner Lembergd6061212014-11-19 21:13:23 +010015262014-11-19 Werner Lemberg <wl@gnu.org>
1527
Werner Lembergb3500af2014-11-19 21:28:21 +01001528 Change some fields in `FT_Bitmap' to unsigned type.
1529
1530 This doesn't break ABI.
1531
1532 * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
1533 `pixel_mode', and `palette_mode' unsigned types.
1534
1535 * src/base/ftbitmap.c: Updated.
1536 (FT_Bitmap_Copy): Fix casts.
1537
1538 * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
1539 Updated.
1540
15412014-11-19 Werner Lemberg <wl@gnu.org>
1542
Werner Lembergdf485772014-11-19 21:21:23 +01001543 Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
1544
1545 * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
1546 for the pitch while copying data.
1547 Correctly set pitch sign in target bitmap.
1548
15492014-11-19 Werner Lemberg <wl@gnu.org>
1550
Werner Lembergd6061212014-11-19 21:13:23 +01001551 Minor code improvement in `FT_Bitmap_Embolden'.
1552
1553 * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
1554 Fix thinko.
1555
Alexei Podtelezhnikovf841ad32014-11-19 21:19:06 -050015562014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com>
1557
1558 * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
1559
Werner Lemberga67c43e2014-11-19 06:46:23 +010015602014-11-19 Behdad Esfahbod <behdad@behdad.org>
1561
1562 Avoid compiler warnings on x86-64 for `FT_MulFix'.
1563
1564 `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
1565 but several inline implementations of it in `ftcalc.h' take
1566 `FT_Int32' arguments. This is causing compiler warnings on x86-64:
1567 If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
1568 inline implementation of this function, integer values are truncated
1569 from 64bit to 32bit.
1570
1571 * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
1572 casts.
1573
Werner Lemberg54abd222014-11-15 09:05:22 +010015742014-11-15 Werner Lemberg <wl@gnu.org>
1575
1576 [sfnt] Fix Savannah bug #43597.
1577
1578 * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
1579 bitmaps.
1580
Werner Lemberg602040b2014-11-12 20:51:20 +010015812014-11-12 Werner Lemberg <wl@gnu.org>
1582
Werner Lemberg257c2702014-11-12 21:42:13 +01001583 [sfnt] Fix Savannah bug #43591.
1584
1585 * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
1586 and multiplication overflow.
1587
15882014-11-12 Werner Lemberg <wl@gnu.org>
1589
Werner Lemberg677ddf42014-11-12 21:26:44 +01001590 [sfnt] Fix Savannah bug #43590.
1591
1592 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
1593 Protect against addition overflow.
1594
15952014-11-12 Werner Lemberg <wl@gnu.org>
1596
Werner Lembergf46add12014-11-12 21:06:08 +01001597 [sfnt] Fix Savannah bug #43589.
1598
1599 * src/sfnt/sfobjs.c (woff_open_font): Protect against addition
1600 overflow.
1601
16022014-11-12 Werner Lemberg <wl@gnu.org>
1603
Werner Lemberg602040b2014-11-12 20:51:20 +01001604 [sfnt] Fix Savannah bug #43588.
1605
1606 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
1607 tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
1608 against overflow in additions and multiplications.
1609
Alexei Podtelezhnikov2e73a1b2014-11-09 23:22:43 -050016102014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
1611
1612 [base] CORDIC improvements.
1613
1614 The scaling between the hypotenuse and its CORDIC approximation is
1615 based on regression analysis. The smaller padding for `theta' is
1616 justifed by its maximum error of less than 6.
1617
1618 * src/base/fttrigon.c (ft_trig_downscale): Borrow code from
1619 ./ftcalc.c (ft_multo64), change linear intercept.
1620 (ft_trig_pseudo_polarize): Decrease `theta' padding.
1621
Werner Lemberg0e73d212014-11-09 01:27:38 +010016222014-11-09 Werner Lemberg <wl@gnu.org>
1623
1624 * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
1625
1626 One more place to check whether `radius' is zero.
1627
1628 Problem reported by Marco Wertz <marco.wertz@gmx.de>.
1629
Werner Lemberg2c4832d2014-11-07 07:42:33 +010016302014-11-07 Werner Lemberg <wl@gnu.org>
1631
Werner Lemberg602040b2014-11-12 20:51:20 +01001632 [bdf] Fix Savannah bug #43535.
Werner Lemberg2c4832d2014-11-07 07:42:33 +01001633
1634 * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
1635 character more than `strncmp'.
1636 s/ft_strncmp/_bdf_strncmp/ everywhere.
1637
Werner Lembergf49a1002014-11-06 13:30:28 +010016382014-11-06 Werner Lemberg <wl@gnu.org>
1639
Werner Lemberg602040b2014-11-12 20:51:20 +01001640 [pcf] Fix Savannah bug #43548.
Werner Lembergef1eba72014-11-06 23:25:05 +01001641
Werner Lemberg2c4832d2014-11-07 07:42:33 +01001642 * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
1643 and column values.
Werner Lembergef1eba72014-11-06 23:25:05 +01001644
16452014-11-06 Werner Lemberg <wl@gnu.org>
1646
Werner Lemberg602040b2014-11-12 20:51:20 +01001647 [pcf] Fix Savannah bug #43547.
Werner Lemberg0e2f5d52014-11-06 22:32:46 +01001648
1649 * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
1650 values.
1651
16522014-11-06 Werner Lemberg <wl@gnu.org>
1653
Werner Lembergf49a1002014-11-06 13:30:28 +01001654 * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
1655
Infinalityfacfc792014-11-03 07:24:59 +010016562014-11-03 Infinality <infinality@infinality.net>
1657
1658 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
1659
1660 The previous commit deteriorates rendering of DejaVu and similar
1661 fonts; this gets compensated with this rule.
1662
Werner Lemberg706f7522014-11-03 07:20:57 +010016632014-11-03 Werner Lemberg <wl@gnu.org>
1664
1665 * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
1666
1667 Before this patch, it was impossible to ever call DELTAP[123] in
1668 subpixel hinting mode as described in the ClearType whitepaper; it
1669 only worked if in `compatibility mode'. However, compatibility mode
1670 essentially disables SHPIX, completely ruining hinting of
1671 ttfautohint output, for example.
1672
1673 We now follow the whitepaper more closely so that DELTAP[123]
1674 instructions for touched points in the non-subpixel direction are
1675 executed.
1676
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -040016772014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
1678
Alexei Podtelezhnikov525d4872014-10-31 22:12:37 -04001679 [smooth] Improve code readability.
1680
1681 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
1682
16832014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
1684
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -04001685 [smooth] Reduce outline translations during rendering.
1686
1687 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
1688 virtually by modifying cbox, actually translate outline if cumulative
1689 shift is not zero.
1690
Alexei Podtelezhnikovc7fd9352014-10-30 22:43:01 -040016912014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com>
1692
1693 [smooth] Fix Savannah bug #35604 (cont'd).
1694
1695 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
1696 casts that became unnecessary after the variable type upgrades.
1697
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -040016982014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
1699
Alexei Podtelezhnikov465ab992014-10-29 23:45:23 -04001700 [smooth] Improve code readability.
1701
1702 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
1703
17042014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
1705
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -04001706 Unify hypotenuse approximations.
1707
1708 * include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
1709 * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
1710 * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
1711
Werner Lembergfe151522014-10-25 05:56:59 +020017122014-10-25 Werner Lemberg <wl@gnu.org>
1713
1714 [cff] Test valid darkening parameter macros in `ftoption.h'.
1715
1716 We no longer need an otherwise unused typedef that can cause a gcc
1717 warning.
1718 Problem reported by Alexei.
1719
1720 * src/cff/cffobjs.c (cff_driver_init): Use
1721 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
1722 (SET_DARKENING_PARAMETERS): Removed.
1723 Compile time tests are now ...
1724
1725 * devel/ftoption.h, include/config/ftoption.h: ... here.
1726
Alexei Podtelezhnikovaba0f492014-10-24 23:50:57 -040017272014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com>
1728
1729 Improve flat corner definition.
1730
1731 * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
1732 distance with the alpha max plus beta min algorithm.
1733 * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
1734 metric.
1735
David Weißdd8de1a2014-10-23 20:01:48 +020017362014-10-23 David Weiß <David.Weiss@ptvgroup.com>
1737
1738 [build] Improve property file for vc2010.
1739
1740 User-defined properties should be empty by default to prevent linker
1741 failures.
1742
1743 * builds/windows/vc2010/freetype.user.props,
1744 builds/windows/vc2010/freetype.vcxproj:
1745 s/OptionsDirectory/UserOptionDirectory/.
1746 Comment out all user options.
1747
Werner Lembergdd570e92014-10-23 19:57:37 +020017482014-10-23 Werner Lemberg <wl@gnu.org>
1749
1750 [cff] Work around bug in preprocessor of MSVC 2010.
1751
1752 We have been hit by
1753
1754 https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
1755
1756 * devel/ftoption.h, include/config/ftoption.h: Replace
1757 `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
1758 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
1759
1760 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no
1761 longer need double expansion.
1762 (SET_DARKENING_PARAMETERS_0): Renamed to ...
1763 (SET_DARKENING_PARAMETERS): ... this.
1764 Update call.
1765
Werner Lembergcc7bb802014-10-20 08:35:50 +020017662014-10-20 Werner Lemberg <wl@gnu.org>
1767
1768 [sbit] Minor fixes.
1769
1770 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
1771 Accept overlay format also, but emit warning message in that case.
1772 (tt_sbit_decoder_load_metrics): Add missing newline to error
1773 message.
1774 (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
1775 7.1) to the list of unsupported formats.
1776
Alexei Podtelezhnikov118e6512014-10-19 23:31:08 -040017772014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com>
1778
1779 [truetype] Clean up bytecode rounding.
1780
1781 Zero distance does not have to be treated specially if you follow
1782 specifications and check the sign as the very last step of rounding.
1783
1784 * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
1785 Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
1786 macros when available, do not check for non-zero distance.
1787 (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
1788 if sign changed.
1789
Alexei Podtelezhnikovd4aabda2014-10-18 10:10:04 -040017902014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
1791
1792 [truetype] Unwrap engine compensation settings.
1793
1794 * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
1795
David Weißfede19e2014-10-18 14:59:20 +020017962014-10-18 David Weiß <David.Weiss@ptvgroup.com>
1797
1798 [build] Add property file to vc2010 project.
1799
1800 This simplifies custom build configurations, especially for
1801 automated build environments.
1802
1803 * builds/windows/vc2010/freetype.user.props: New configuration file.
1804
1805 * builds/windows/vc2010/freetype.vcxproj: Include
1806 `freetype.user.props' and use its data fields.
1807
1808 * builds/windows/vc2010/index.html: Updated.
1809
Werner Lembergc9c33f22014-10-18 11:01:14 +020018102014-10-18 Werner Lemberg <wl@gnu.org>
1811
1812 [autofit] Add blue-zone support for Telugu.
1813
1814 This essentially moves the Telugu script from the `Indic' hinter to
1815 the `Latin' hinter.
1816
1817 Note that this is a first shot and quite certainly needs
1818 refinements.
1819
1820 * src/autofit/afblue.dat: Add blue zone data for Telugu.
1821
1822 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1823
1824 * src/autofit/afscript.h: Add Telugu standard characters and move
1825 data out of AF_CONFIG_OPTION_INDIC block.
1826
1827 * src/autofit/afranges.c: Move Telugu data out of
1828 AF_CONFIG_OPTION_INDIC block.
1829
1830 * src/autofit/afstyles.h: Update Telugu data; in particular, use
1831 AF_WRITING_SYSTEM_LATIN.
1832
Werner Lemberg54306f52014-10-18 10:42:28 +020018332014-10-18 David Wimsey <david@wimsey.us>
1834
1835 [cmake] Add iOS build support.
Werner Lemberg1050aa92014-10-18 10:45:09 +02001836 From Savannah patch #8497.
Werner Lemberg54306f52014-10-18 10:42:28 +02001837
1838 * builds/cmake/iOS.cmake: New file. Universal binaries are built
1839 with both 32 and 64 bit arm architectures.
1840
1841 * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
1842 toolchain. Possible values are `OS' to build on iOS, or
1843 `SIMULATOR' to build on APPLE.
1844
Werner Lemberg1a1750f2014-10-16 22:54:01 +020018452014-10-16 Behdad Esfahbod <behdad@behdad.org>
1846 Werner Lemberg <wl@gnu.org>
1847
1848 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
1849
1850 * devel/ftoption.h, include/config/ftoption.h
1851 (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
1852
1853 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
1854 SET_DARKENING_PARAMETERS_0): New macros.
1855 (cff_driver_init): Use new macros.
1856
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -040018572014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
1858
1859 [truetype] Limit delta shift range.
1860
Werner Lembergdf3d67e2014-10-16 07:24:44 +02001861 The valid range for delta shift is zero through six. Negative values
1862 are invalid according to
1863
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04001864 https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
1865
1866 * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
Werner Lembergdf3d67e2014-10-16 07:24:44 +02001867 * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
1868 is out of range.
1869 (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04001870
Werner Lemberg03987bf2014-10-16 07:19:46 +020018712014-10-16 Werner Lemberg <wl@gnu.org>
1872
1873 A better fix for Savannah bug #43392.
1874 Suggested by Doug Felt <dougfelt@gmail.com>.
1875
Werner Lembergdf3d67e2014-10-16 07:24:44 +02001876 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
Werner Lemberg03987bf2014-10-16 07:19:46 +02001877 `vertAdvance' to zero...
1878
1879 * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
1880 value for `vertAdvance' based on `linearVertAdvance' in case
1881 `vertAdvance' is zero. Note that the previous computed ad-hoc value
1882 for `linearVertAdvance' was apparently not tested in a real-life
1883 situation.
1884
David Weiß3889cb22014-10-14 11:35:16 +020018852014-10-14 David Weiß <David.Weiss@ptvgroup.com>
1886
1887 [build] Better optimization settings for vc2010 solution file.
1888
1889 * builds/windows/vc2010/freetype.sln,
1890 builds/windows/vc2010/freetype.vcxproj: Updated.
1891
Werner Lemberg8f178092014-10-14 08:28:09 +020018922014-10-14 Werner Lemberg <wl@gnu.org>
1893
1894 [autofit] Adjust Devenagari character range.
1895
1896 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
1897 are common to all other Indic scripts.
1898
Werner Lemberg1ca5fa12014-10-12 08:31:32 +020018992014-10-12 Werner Lemberg <wl@gnu.org>
1900
1901 [sfnt] Fix Savannah bug #43392.
1902
1903 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
1904 vertical metrics uninitialized.
1905
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -040019062014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
1907
1908 [base] Small bbox correction.
1909
1910 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
Werner Lembergdf3d67e2014-10-16 07:24:44 +02001911 instead of initial point that could be `off' in conic outlines.
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -04001912
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -040019132014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
1914
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04001915 [base] Fix Savannah bug #43356.
1916
1917 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
Werner Lembergdf3d67e2014-10-16 07:24:44 +02001918 of implicit `to'.
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04001919 (BBox_Line_To): New emitter that does not update bbox.
1920
19212014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
1922
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -04001923 [base] Introduce and use new macro `FT_UPDATE_BBOX'
1924
1925 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
1926 (FT_Outline_Get_BBox): Use it here.
1927
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -040019282014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
1929
1930 [base] Significant optimization of `ft_div64by32'
1931
1932 We shift as many bits as we can into the high register, perform
1933 32-bit division with modulo there, then work through the remaining
1934 bits with long division. This optimization is especially noticeable
1935 for smaller dividends that barely use the high register.
1936
1937 * src/base/ftcalc.c (ft_div64by32): Updated.
1938
Dave Arnold537c55d2014-10-02 06:32:32 +020019392014-10-02 Dave Arnold <darnold@adobe.com>
1940
1941 [cff] Fix Savannah bug #43271.
1942
1943 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
1944 detection to use logarithms and clamp `scaledStem'.
1945
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -040019462014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
1947
Alexei Podtelezhnikov74d0aad2014-10-01 23:27:15 -04001948 * src/base/ftcalc.c: Remove miscellaneous type casts.
1949
19502014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
1951
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -04001952 [base] Use more common `FT_MSB' implementation with masks.
1953
1954 * src/base/ftcalc.c (FT_MSB): Updated.
1955
Alexei Podtelezhnikov955aff12014-09-30 23:09:39 -040019562014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
1957
1958 [base] Clean up.
1959
1960 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
1961 code.
1962
Alexei Podtelezhnikov7f491112014-09-25 22:54:38 -040019632014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
1964
1965 [base] Avoid unnecessary long division.
1966
1967 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
1968 lack thereof are predicted accurately.
1969
1970 * src/base/ftcalc.c (ft_div64by32): Improve readability.
1971 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
1972 when multiplication stayed within 32 bits.
1973
Werner Lemberg5b68e4f2014-09-24 19:06:13 +020019742014-09-24 Werner Lemberg <wl@gnu.org>
1975
1976 [autofit] Minor clean-ups.
1977
1978 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
1979
1980 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1981 af_glyph_hints_align_strong_points): Updated.
1982
1983 * src/autofit/aflatin.c (af_latin_hints_link_segments,
1984 af_latin_hints_compute_segments), src/autofit/afcjk.c
1985 (af_cjk_hints_link_segments), src/autofit/aflatin2.c
1986 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
1987 There are no longer fake segments since more than 10 years...
1988
Werner Lemberg387a9fe2014-09-22 06:42:24 +020019892014-09-22 Werner Lemberg <wl@gnu.org>
1990
1991 [autofit] Minor code streamlining.
1992
1993 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
1994 initialization.
1995
Alexei Podtelezhnikov5c894842014-09-19 22:03:15 -040019962014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
1997
1998 * src/base/ftcalc.c: Harmonize code.
1999
20002014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002001
Alexei Podtelezhnikovef070d42014-09-15 22:06:19 -04002002 [base] Tighten the overflow check in `FT_MulDiv'.
2003
2004 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
2005
20062014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2007
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002008 Fix Savannah bug #43153.
2009
2010 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -04002011 overflow in `divider'.
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002012
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -040020132014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2014
Alexei Podtelezhnikov336735d2014-09-03 22:55:26 -04002015 [base] Tighten the overflow check in `FT_DivFix'.
2016
2017 This fixes a 13-year old bug. The original overflow check should have
2018 been updated when rounding was introduced into this function
2019 (c2cd00443b).
2020
2021 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
2022 * include/freetype.h (FT_DivFix): Updated documentation.
2023
20242014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2025
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -04002026 [base] Tighten the overflow check in `FT_MulFix'.
2027
2028 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
2029
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -040020302014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
2031
2032 [truetype] Shortcut ppem calculations for square pixels.
2033
2034 * src/truetype/ttinterp.h (TT_ExecContextRec): New field
2035 `cur_ppem_func' with a function pointer.
2036 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
2037 depending on the pixel geometry to either...
2038 (Current_Ppem_Stretched): ... this for stretched pixels.
2039 (Current_Ppem): ... or this for square pixels.
2040 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
2041
Behdad Esfahbod1ec98b22014-08-31 08:47:11 +020020422014-08-31 Behdad Esfahbod <behdad@behdad.org>
2043
2044 Don't use `register' keyword. Fixes compiler warnings.
2045
2046 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
2047 * src/gzip/inftrees.c (huft_build): Ditto.
2048 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
2049
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -040020502014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
2051
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -04002052 [truetype] Optimize DELTAP and DELTAC.
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -04002053
2054 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
2055 calculations outside of the loop.
2056
Alexei Podtelezhnikov98688592014-08-21 23:28:52 -040020572014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
2058
2059 Fix Savannah bug #43033.
2060
2061 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2062 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
2063 64-bit type is `long'.
2064
Alexei Podtelezhnikov8fd87d42014-08-20 00:57:22 -040020652014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
2066
2067 [base] Small optimization of `FT_MulFix'.
2068
2069 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
2070 32-bit calculations.
2071
Alexei Podtelezhnikovf09326a2014-08-20 00:08:38 -040020722014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2073
2074 [base] Use unsigned calculation in `FT_MulDiv'.
2075
2076 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
2077
Alexei Podtelezhnikov382f3152014-08-18 23:16:15 -040020782014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
2079
2080 [base] Remove truncation in `FT_DivFix'.
2081
2082 * src/base/ftcalc.c (FT_DivFix): Updated.
2083
Alexei Podtelezhnikov5ef20232014-08-14 23:21:46 -040020842014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
2085
2086 Minor refactoring.
2087
2088 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
2089
20902014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovc7022462014-08-14 23:01:01 -04002091
2092 Turn FT_MSB into a macro when using gcc builtins.
2093
2094 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
2095
Alexei Podtelezhnikovf8efbcf2014-08-12 23:22:17 -040020962014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
2097
2098 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
2099
2100 * src/base/ftbbox.c (BBox_Cubic_Check): Update.
2101 (update_cubic_max): Repalce with...
2102 (cubic_peak): ... this, which now handles upscaling.
2103
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -040021042014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2105
Alexei Podtelezhnikov28018d42014-08-12 00:26:16 -04002106 [base] Handle collapsed outlines to avoid undefined FT_MSB.
2107
2108 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
2109
21102014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2111
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -04002112 [base] Restore FT_MulFix inlining.
2113
2114 * include/freetype.h (FT_MulFix): Unconditionally defined.
2115
2116 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
2117
2118 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
2119 which conditionally replaces the function with an inline version
2120 through the macro.
2121
Alexei Podtelezhnikov90be4b62014-08-08 22:27:10 -040021222014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2123
2124 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
2125
Werner Lembergd17cabf2014-07-26 09:53:50 +090021262014-07-26 Werner Lemberg <wl@gnu.org>
2127
2128 [cff] Fix typo.
2129
2130 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
2131 offsets in third quadrant.
2132
2133 Reported by maks <maksqwe1@ukr.net>.
2134
Werner Lemberg4e754132014-07-17 17:34:49 +090021352014-07-17 Werner Lemberg <wl@gnu.org>
2136
2137 Fix Savannah bug #42788.
2138
2139 * src/pfr/pfrobjs.c: Include `ftcalc.h'.
2140
Alexei Podtelezhnikovc0a6f202014-07-16 22:05:56 -040021412014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
2142
2143 Replace `ft_highpow2' function.
2144
2145 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
2146 `ft_highpow2'.
2147
2148 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
2149 it.
2150
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -040021512014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2152
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002153 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
Alexei Podtelezhnikov177982e2014-07-15 23:54:34 -04002154
21552014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2156
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -04002157 [base] Move assembler code back in the source file.
2158
2159 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
2160
2161 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2162 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
2163
2164 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
2165
21662014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikov1183cd42014-07-14 22:30:55 -04002167
2168 [base] Further clean up color bitmap conversion.
2169
2170 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
2171 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
2172
Werner Lemberg441b3f32014-07-13 02:28:14 +090021732014-07-13 Werner Lemberg <wl@gnu.org>
2174
2175 [truetype] Improve handling of buggy `prep' tables.
2176
2177 In case of an error in the `prep' table, no longer try to execute it
2178 again and again. This makes FreeType handle endless loops in buggy
2179 fonts much faster.
2180
2181 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
2182 and `cvt_ready' are now negative if not initialized yet, otherwise
2183 they indicate the error code of the last run.
2184
2185 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
2186 tt_size_done_bytecode, tt_size_init_bytecode,
2187 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
2188 Updated.
2189
2190 * src/truetype/ttgload.c (tt_loader_init): Updated.
2191 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
2192 and `prep' only if we are in the `glyf' table.
2193
Werner Lemberge98e2bc2014-07-12 16:37:39 +090021942014-07-12 Werner Lemberg <wl@gnu.org>
2195
2196 * builds/vms/ftconfig.h: Synchronize.
2197 Problem reported by Alexei.
2198
Alexei Podtelezhnikov35576bf2014-07-11 22:40:34 -040021992014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2200
2201 [base] Clean up bitmap conversion.
2202
2203 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
2204 appropriate FT_DivFix and remove superfluous upscaling.
2205
Alexei Podtelezhnikovceab95a2014-07-04 23:01:32 -040022062014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
2207
2208 [base] Small optimization of the ancient code.
2209
2210 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
2211 condition for direct 32-bit calculations.
2212
Werner Lemberg38975562014-06-27 06:55:56 +020022132014-06-27 Werner Lemberg <wl@gnu.org>
2214
2215 Fix Apple standard glyph names.
2216
2217 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
2218 `tools/glnames.py'
2219
2220 Problem reported by Adam Twardoch <adam@fontlab.com>.
2221
Werner Lembergcf2347c2014-06-17 09:01:04 +020022222014-06-17 Werner Lemberg <wl@gnu.org>
2223
Werner Lemberg231171f2014-06-17 09:14:32 +02002224 Partially revert commit from 2014-06-13.
2225
2226 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
2227 declaration of `p_first' and `p_last' out of the loop.
2228
22292014-06-17 Werner Lemberg <wl@gnu.org>
2230
Werner Lembergcf2347c2014-06-17 09:01:04 +02002231 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
2232
2233 This simplifies cross-compiling.
2234
Werner Lemberg6497b9c2014-06-13 09:28:00 +020022352014-06-13 Werner Lemberg <wl@gnu.org>
2236
Werner Lemberge5c0fff2014-06-13 14:01:20 +02002237 Fix more compiler warnings.
2238 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2239
2240 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2241 Make integer constant unsigned.
2242
2243 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
2244 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
2245 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
2246 casts.
2247
22482014-06-13 Werner Lemberg <wl@gnu.org>
2249
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002250 Fix compiler warnings.
2251 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2252
2253 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002254 src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002255 `unsigned' issues.
2256
2257 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
2258 happy.
2259
2260 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
2261 for `fir'.
2262 Fix `signed' vs. `unsigned' issues.
2263
2264 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
2265 (WRITE_USHORT, WRITE_ULONG): Add proper casts.
2266
2267 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
2268
2269 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
2270 and `B2'.
2271
Alexey Petruchik02f21702014-05-16 08:09:43 +020022722014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
2273
2274 [cmake] Add option to build OS X framework.
2275
2276 * CMakeLists.txt: Update accordingly.
2277
2278 * builds/mac/freetype-Info.plist: New file.
2279
Pavel Koshevoy15da66a2014-05-13 07:33:48 +020022802014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
2281
2282 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
2283
Werner Lemberg07e7b8a2014-05-11 08:00:25 +020022842014-05-11 Werner Lemberg <wl@gnu.org>
2285
Werner Lembergfaa21472014-05-11 12:44:00 +02002286 [autofit] Fix variable initializations.
2287
2288 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
2289 values to `in_dir' and `out_dir' for all points.
2290
22912014-05-11 Werner Lemberg <wl@gnu.org>
2292
Werner Lemberg07e7b8a2014-05-11 08:00:25 +02002293 [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
2294
2295 Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
2296
2297 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
2298 finding first non-near point.
2299 Properly initialize non-near point deltas.
2300
Werner Lemberg63bef9a2014-05-01 07:16:05 +020023012014-05-01 Werner Lemberg <wl@gnu.org>
2302
Werner Lembergc576bb02014-05-01 17:24:19 +02002303 [autofit] Add blue-zone support for Devanagari.
2304
2305 This essentially moves the Devanagari script from the `Indic' hinter
2306 to the `Latin' hinter. Thanks to Girish Dalvi
2307 <girish.dalvi@gmail.com> for guidance with blue zone characters!
2308
2309 * src/autofit/afblue.dat: Add blue zone data for Devanagari.
2310
2311 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2312
2313 * src/autofit/afscript.h: Add Devanagari standard characters and
2314 move data out of AF_CONFIG_OPTION_INDIC block.
2315
2316 * src/autofit/afranges.c: Move Devanagari data out of
2317 AF_CONFIG_OPTION_INDIC block.
2318 Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
2319
2320 * src/autofit/afstyles.h: Update Devanagari data; in particular, use
2321 AF_WRITING_SYSTEM_LATIN.
2322
23232014-05-01 Werner Lemberg <wl@gnu.org>
2324
Werner Lemberg63bef9a2014-05-01 07:16:05 +02002325 [autofit] Fix handling of neutral blue zones in stems.
2326
2327 * src/autofit/afhints.h (AF_Edge_Flags): New value
2328 `AF_EDGE_NEUTRAL'.
2329
2330 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
2331 neutral blue zones with AF_EDGE_NEUTRAL.
2332 (af_latin_hint_edges): Skip neutral blue zones if necessary.
2333
Werner Lembergccfc4b42014-04-28 21:13:14 +020023342014-04-28 Werner Lemberg <wl@gnu.org>
2335
2336 [autofit] Introduce neutral blue zones to the latin module.
2337
2338 Such blue zones match either the top or the bottom of a contour. We
2339 need them for scripts where accent-like elements directly touch the
2340 base character (for example, some vowel signs in Devanagari, cf.
2341 U+0913 or U+0914).
2342
2343 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
2344 property.
2345
2346 * src/autofit/afblue.h: Regenerated.
2347
2348 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
2349 (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
2350
2351 * src/autofit/aflatin.c (af_latin_metrics_init_blues,
2352 af_latin_hints_compute_blue_edges): Handle neutral blue zones.
2353
Werner Lembergabb3fca2014-04-25 22:13:32 +020023542014-04-25 Werner Lemberg <wl@gnu.org>
2355
2356 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
2357
2358 Using input glyph coverage data is simply wrong.
2359
2360 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
2361 Mantas MikulÄ—nas <grawity@gmail.com>.
2362
Werner Lembergf1936372014-04-23 08:22:33 +020023632014-04-23 Werner Lemberg <wl@gnu.org>
2364
2365 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
2366
2367 This spot has been missed while introducing support for various
2368 drop-out modes years ago (including no drop-out mode, which this
2369 commit fixes).
2370
2371 Problem reported by Patrick Thomas <pthomas505@gmail.com>.
2372
Werner Lembergd9b44702014-04-22 07:33:07 +020023732014-04-22 Werner Lemberg <wl@gnu.org>
2374
2375 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
2376
Werner Lemberg98e510e2014-04-20 22:11:27 +020023772014-04-20 Werner Lemberg <wl@gnu.org>
2378
2379 [autofit] Fix Savannah bug #42148.
2380
2381 The adaptation of the cjk auto-hinter module to blue stringsets in
2382 2013-08-25 had three severe bugs. Mea culpa.
2383
2384 1. Contrary to the latin auto-hinter, characters for reference and
2385 overshoot values of a blue zone are specified separately. Due to
2386 the screwed-up change it didn't work at all.
2387
2388 2. A boolean comparison was erroneously replaced with a cast,
2389 causing invalid results with the `^' operator later on. The
2390 visual artifact caused by this problem is the topic of the bug
2391 report.
2392
2393 3. Two flag values were inverted, causing incorrect assignment of
2394 reference and overshoot values.
2395
2396 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
2397 syntax to have both reference and overshoot characters in a single
2398 string. This is error #1.
2399 Add extensive comments.
2400
2401 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
2402 longer used.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002403 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002404 This is error #3.
2405
2406 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2407
2408 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
2409 Use character `|' to separate characters for reference and overshoot
2410 values.
2411 Improve tracing messages, synchronizing them with the latin
2412 auto-hinter.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002413 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002414 This is error #2.
2415 (af_cjk_align_linked_edge): Add tracing message.
2416
2417 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
2418 used.
2419
Werner Lembergbbd83132014-04-17 01:24:36 +020024202014-04-17 Werner Lemberg <wl@gnu.org>
2421
Werner Lemberg8c7fb782014-04-17 15:53:25 +02002422 [autofit] More coverage fixes for complex scripts.
2423
2424 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
2425 of GSUB lookups into output coverage. Otherwise, ligatures are not
2426 handled properly.
2427 Don't check blue zone characters for default coverage.
2428
24292014-04-17 Werner Lemberg <wl@gnu.org>
2430
Werner Lembergbbd83132014-04-17 01:24:36 +02002431 Make `FT_Get_SubGlyph_Info' actually work.
2432
2433 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
2434 if there is no error.
2435
Werner Lemberg181fd072014-04-15 16:47:05 +020024362014-04-15 Werner Lemberg <wl@gnu.org>
2437
2438 [afblue.pl]: Minor improvements.
2439
2440 * src/tools/afblue.pl: Allow whitespace before comments.
2441 Ignore whitespace in strings.
2442
Werner Lemberg8b1f2a62014-04-14 07:58:19 +020024432014-04-14 Werner Lemberg <wl@gnu.org>
2444
2445 [autofit] Improve coverage handling.
2446
2447 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
2448 appearing in the GPOS table if we are processing the default
2449 coverage.
2450
David Weber76307872014-04-13 15:41:13 +020024512014-04-13 David Weber <weber.aulendorf@googlemail.com>
2452
2453 [smooth] Fix stand-alone compilation.
2454
2455 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
2456
Werner Lemberg8a94b1e2014-04-12 20:44:33 +020024572014-04-12 Werner Lemberg <wl@gnu.org>
2458
2459 [autofit] Redesign the recognition algorithm of strong points.
2460
2461 In particular, local extrema without horizontal or vertical segments
2462 are better recognized:
2463
2464 + A + D
2465 \ /
2466 \ /
2467 \ /
2468 \ /
2469 \ + C
2470 \ /
2471 B +/
2472
2473 If the distances AB and CD are large, point B wasn't previously
2474 detected as an extremum since the `ft_corner_is_flat' function
2475 `swallowed' BC regardless of its direction, tagging point B as weak.
2476 The next iteration started at B and made `ft_corner_is_flat' swallow
2477 point C, tagging it as weak also, et voilà.
2478
2479 To improve that, another pass gets now performed before calling
2480 `ft_corner_is_flat' to improve the `topology' of an outline: A
2481 sequence of non-horizontal or non-vertical vectors that point into
2482 the same quadrant are handled as a single, large vector.
2483
2484 Additionally, distances of near points are now accumulated, which
2485 makes the auto-hinter handle them as if they were prepended to the
2486 next non-near vector.
2487
2488 This generally improves the auto-hinter's rendering results.
2489
2490 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
2491
2492 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
2493 `AF_FLAG_NEAR'.
2494
Werner Lemberg71f53e12014-04-05 16:27:19 +020024952014-04-05 Werner Lemberg <wl@gnu.org>
2496
2497 [autofit] Improve scoring algorithm for identifying stems.
2498
2499 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
2500
2501 The new algorithm takes care of the width of stems: If the distance
2502 between two segments is larger than the largest stem width, the
2503 demerits quickly increase for larger distances. This improves
2504 hinting of slanted fonts (especially if the inner parts of serifs
2505 have non-horizontal `shoulders'), avoiding false stem links.
2506
2507 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
2508 stem width (if available) to compute better demerits for distances
2509 between stems.
2510 (af_latin_hints_detect_features): Pass stem width array and array
2511 size.
2512 (af_latin_metrics_init_widths): Updated to use original algorithm.
2513 (af_latin_hints_apply): Updated to use new algorithm.
2514
2515 * src/autofit/aflatin.h: Updated.
2516 * src/autofit/afcjk.c: Updated.
2517
Werner Lembergf8555b52014-04-03 05:45:38 +020025182014-04-03 Werner Lemberg <wl@gnu.org>
2519
2520 Don't require `gzip' module for `sfnt'.
2521
2522 Reported by Preet <prismatic.project@gmail.com>.
2523
2524 * src/sfnt/sfobjs.c (woff_open_font): Guard use of
2525 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
2526
Werner Lembergf41070f2014-03-27 17:38:23 +010025272014-03-27 Werner Lemberg <wl@gnu.org>
2528
2529 Fix Savannah bug #38235.
2530
2531 Work around a bug in pkg-config version 0.28 and earlier: If a
2532 variable value gets surrounded by doublequotes (in particular values
2533 for the `prefix' variable), the prefix override mechanism fails.
2534
2535 * builds/unix/freetype2.in: Don't use doublequotes.
2536 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
2537 names with backslashes.
2538
Werner Lembergab76d972014-03-24 19:45:03 +010025392014-03-24 Werner Lemberg <wl@gnu.org>
2540
2541 Fix Savannah bug #41946.
2542
2543 Based on a patch from Marek Kašík <mkasik@redhat.com>.
2544
2545 * builds/unix/configure.raw (LIBS_CONFIG): Remove.
2546 * builds/unix/freetype-config.in (libs): Hard-code value.
2547 * builds/unix/unix-def.in: Updated.
2548
Werner Lembergd5159922014-03-22 06:20:54 +010025492014-03-22 Werner Lemberg <wl@gnu.org>
2550
2551 Another revert for the change from 2014-03-18.
2552
2553 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
2554
2555 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
2556 gets always exported.
2557
Werner Lembergf0c471a2014-03-20 07:13:12 +010025582014-03-20 Werner Lemberg <wl@gnu.org>
2559
2560 CMakeLists.txt: Another fix for include directories.
2561
2562 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
2563
Werner Lembergcc7cf2c2014-03-19 07:35:35 +010025642014-03-19 Werner Lemberg <wl@gnu.org>
2565
Werner Lemberg606c74f2014-03-19 23:46:42 +01002566 CMakeLists.txt: Fix include directories.
2567
2568 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
2569
25702014-03-19 Werner Lemberg <wl@gnu.org>
2571
Werner Lembergcc7cf2c2014-03-19 07:35:35 +01002572 Partially revert last commit.
2573
2574 Found by Alexei.
2575
2576 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
2577 those variables is plain wrong, since we are in a loop.
2578
Sean McBride87628722014-03-18 08:39:35 +010025792014-03-18 Sean McBride <sean@rogue-research.com>
2580 Werner Lemberg <wl@gnu.org>
2581
2582 Fix clang warnings.
2583
2584 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
2585 some variables.
2586
2587 * src/base/ftcalc.c (FT_MulFix): Only use code if
2588 `FT_MULFIX_INLINED' is not defined.
2589
2590 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
2591 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
2592 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
2593 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
2594 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
2595 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
2596 function static.
2597
2598 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
2599 code.
2600
Werner Lemberg23367ff2014-03-17 07:33:14 +010026012014-03-17 Werner Lemberg <wl@gnu.org>
2602
2603 Fix Savannah bug #41869.
2604
2605 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
2606 validate glyph indices returned by
2607 `hb_ot_layout_lookup_collect_glyphs'.
2608
2609 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
2610
2611 * docs/CHANGES: Updated.
2612
Werner Lemberg03181682014-03-14 08:06:06 +010026132014-03-14 Werner Lemberg <wl@gnu.org>
2614
2615 * builds/unix/configure.raw: Don't show error messages of `which'.
2616
Alan Coopersmithed372b72014-03-09 06:14:12 +010026172014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
2618
2619 Fix cppcheck 1.64 warning.
2620
2621 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
2622 dereference in case of error.
2623
Werner Lemberg1a69dc72014-03-09 06:06:58 +010026242014-03-09 Sean McBride <sean@rogue-research.com>
2625
2626 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
2627
Werner Lemberg05565362014-03-06 18:56:58 +010026282014-03-06 Werner Lemberg <wl@gnu.org>
2629
Werner Lembergec8853c2014-03-06 19:13:45 +01002630 * Version 2.5.3 released.
2631 =========================
2632
2633
2634 Tag sources with `VER-2-5-3'.
2635
2636 * docs/VERSION.DLL: Update documentation and bump version number to
2637 2.5.3.
2638
2639 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
2640 builds/windows/vc2005/index.html,
2641 builds/windows/vc2008/freetype.vcproj,
2642 builds/windows/vc2008/index.html,
2643 builds/windows/vc2010/freetype.vcxproj,
2644 builds/windows/vc2010/index.html,
2645 builds/windows/visualc/freetype.dsp,
2646 builds/windows/visualc/freetype.vcproj,
2647 builds/windows/visualc/index.html,
2648 builds/windows/visualce/freetype.dsp,
2649 builds/windows/visualce/freetype.vcproj,
2650 builds/windows/visualce/index.html,
2651 builds/wince/vc2005-ce/freetype.vcproj,
2652 builds/wince/vc2005-ce/index.html,
2653 builds/wince/vc2008-ce/freetype.vcproj,
2654 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
2655
2656 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
2657
2658 * builds/unix/configure.raw (version_info): Set to 17:2:11.
2659 * CMakeLists.txt (VERSION_PATCH): Set to 3.
2660 * docs/CHANGES: Updated.
2661
26622014-03-06 Werner Lemberg <wl@gnu.org>
2663
Werner Lemberg05565362014-03-06 18:56:58 +01002664 Fixes for compilation with C++.
2665
2666 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
2667 (af_get_coverage): Updated.
2668 (COVERAGE): Add cast.
2669
Sean McBrideb24e8d32014-03-06 14:54:22 +010026702014-03-06 Sean McBride <sean@rogue-research.com>
2671
2672 Remove more clang analyzer warnings.
2673
2674 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
2675 (TT_Load_Glyph): Remove dead stores.
2676
Werner Lemberga32758f2014-03-05 08:02:46 +010026772014-03-05 Werner Lemberg <wl@gnu.org>
2678
2679 * builds/unix/configure.raw: Simplify.
2680
suzuki toshiya382f3ef2014-03-05 10:19:15 +090026812014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2682
2683 Fix a bug in configure in library dependency setting
Werner Lemberga32758f2014-03-05 08:02:46 +01002684 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
suzuki toshiya382f3ef2014-03-05 10:19:15 +09002685
2686 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
2687
Werner Lembergf48f7dc2014-03-04 04:40:07 +010026882014-03-04 Werner Lemberg <wl@gnu.org>
2689
2690 Minor fix for `make devel'.
2691
2692 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
2693 pkg-config for bzip2 since not all GNU/Linux distributions have
2694 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
2695 normally).
2696
Werner Lemberg7ac76b52014-03-04 04:29:17 +010026972014-03-04 Sean McBride <sean@rogue-research.com>
2698
2699 Fix several clang static analyzer dead store warnings.
2700
2701 * src/autofit/afhints.c (af_glyph_hints_reload,
2702 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
2703
2704 * src/bdf/bdflib.c (bdf_font_load): Ditto.
2705
2706 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
2707 psh_glyph_interpolate_other_points): Ditto.
2708
2709 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
2710
Werner Lemberg93ebcbd2014-03-03 07:13:45 +010027112014-03-03 Werner Lemberg <wl@gnu.org>
2712
2713 Rewrite library option handling in `configure'.
2714
2715 o Introduce `auto' value for `--with-XXX' library options; this is
2716 now the default.
2717
2718 o First use `pkg-config' for library detection, then fall back to
2719 other tests.
2720
2721 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
2722 --with-harfbuzz): Rewrite.
2723 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
2724 variables to collect data for `freetype2.pc' and `freetype-config'.
2725 (FT2_EXTRA_LIBS): Renamed to ...
2726 (ft2_extra_libs): This since it gets no longer substituted.
2727 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
2728 New output variables, replacing `XXX_PKG' and `LIBXXX'.
2729 Add notice at the end of `configure' showing the library
2730 configuration.
2731
2732 * builds/unix/freetype-config.in (--static): New command line
2733 option.
2734 (libs): Updated.
2735 (staticlibs): New variable, to be used if `--static' is given.
Werner Lemberg8fa69a82014-12-03 20:07:14 +01002736 * docs/freetype-config.1: Document `--static'.
Werner Lemberg93ebcbd2014-03-03 07:13:45 +01002737
2738 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
2739
Werner Lemberg86026a42014-03-01 06:57:19 +010027402014-03-01 Werner Lemberg <wl@gnu.org>
2741
Werner Lemberge962a912014-03-01 21:00:02 +01002742 Avoid `long long' warnings with older gcc compilers.
2743 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
2744
2745 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
2746 versions < 4.6. This is especially needed for Max OS X since this
2747 OS runs a gcc variant (or emulation) based on version 4.2.1.
2748
27492014-03-01 Werner Lemberg <wl@gnu.org>
2750
Werner Lemberg6030a9f2014-03-01 14:01:12 +01002751 * docs/INSTALL.CROSS: Revised and updated.
2752
27532014-03-01 Werner Lemberg <wl@gnu.org>
2754
Werner Lemberg646db052014-03-01 12:48:07 +01002755 Make `make clean' remove `freetype2.pc'.
2756
2757 This is a generated file at build time, not configure time.
2758
2759 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
2760 (CLEAN): This variable.
2761
27622014-03-01 Werner Lemberg <wl@gnu.org>
2763
Werner Lemberg00c79ed2014-03-01 12:32:20 +01002764 Use pkg-config for detecting libpng and libbz2 also.
2765
2766 * builds/unix/configure.raw (HAVE_PKG): New variable.
2767 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
2768 Search for libpng using `pkg-config'.
2769 Fix definition of `LIBHARFBUZZ' variable.
2770 * builds/unix/freetype-config.in ($libs): Updated.
2771 * builds/unix/freetype2.in: Add `URL' field.
2772 Update `Requires.private' and `Libs.private'.
2773 * builds/unix/unix-def.in: Updated.
2774
27752014-03-01 Werner Lemberg <wl@gnu.org>
2776
Werner Lemberg86026a42014-03-01 06:57:19 +01002777 Add configure support for HarfBuzz.
2778
2779 * builds/unix/pkg.m4: New file.
2780 * builds/unix/configure.raw: Search for libharfbuzz using
2781 `pkg-config'.
2782 Add `--without-harfbuzz' option.
2783 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
2784 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
2785 HarfBuzz.
2786
2787 * docs/INSTALL.UNIX: Document interdependency of Freetype with
2788 HarfBuzz.
2789
Alexei Podtelezhnikov6adda682014-02-28 09:24:26 +010027902014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
2791
2792 [cff] Math simplifications.
2793
2794 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
2795 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
2796
Dave Arnold0eae6eb2014-02-28 07:40:01 +010027972014-02-28 Dave Arnold <darnold@adobe.com>
2798
Dave Arnold135c3fa2014-02-28 07:42:42 +01002799 [cff] Fix Savannah bug #41697, part 2.
2800
2801 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
2802 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
2803 a subroutine if no subroutines exist. This is an error but should
2804 not trigger an assert. Split the assert to account for this.
2805
28062014-02-28 Dave Arnold <darnold@adobe.com>
2807
Dave Arnold0eae6eb2014-02-28 07:40:01 +01002808 [cff] Fix Savannah bug #41697, part 1.
2809
2810 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
2811 invalid. In this case, it is not safe to use the length of
2812 `hStemHintArray'; the exception has already been recorded in
2813 `hintMask'.
2814
Werner Lembergeee4ff82014-02-26 18:12:36 +010028152014-02-26 Werner Lemberg <wl@gnu.org>
2816
Werner Lemberga2b5f662014-02-26 19:50:18 +01002817 [sfnt] Fix Savannah bug #41696.
2818
2819 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
2820 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
2821
28222014-02-26 Werner Lemberg <wl@gnu.org>
2823
Werner Lembergeee4ff82014-02-26 18:12:36 +01002824 [winfnt] Fix Savannah bug #41694.
2825
2826 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
2827
28282014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg9a567642014-02-26 13:08:07 +01002829
Werner Lemberg08c628d2014-02-26 14:18:03 +01002830 [cff] Fix Savannah bug #41693.
2831
2832 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
2833
Werner Lembergeee4ff82014-02-26 18:12:36 +010028342014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg08c628d2014-02-26 14:18:03 +01002835
Werner Lemberg9a567642014-02-26 13:08:07 +01002836 [bdf] Fix Savannah bug #41692.
2837
2838 bdflib puts data from the input stream into a buffer in chunks of
2839 1024 bytes. The data itself gets then parsed line by line, simply
2840 increasing the current pointer into the buffer; if the search for
2841 the final newline character exceeds the buffer size, more data gets
2842 read.
2843
2844 However, in case the current line's end is very near to the buffer
2845 end, and the keyword to compare with is longer than the current
2846 line's length, an out-of-bounds read might happen since `memcmp'
2847 doesn't stop properly at the string end.
2848
2849 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
2850 stop at string ends.
2851
suzuki toshiya91c7a972014-02-17 16:38:31 +090028522014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2853
2854 [autofit] Fix `make multi' compilation.
2855
suzuki toshiyacc9a0c22014-02-17 16:43:54 +09002856 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
suzuki toshiya91c7a972014-02-17 16:38:31 +09002857
Werner Lemberg6b290fd2014-02-19 09:26:54 +010028582014-02-19 Werner Lemberg <wl@gnu.org>
2859 Simon Bünzli <zeniko@gmail.com>
2860
2861 Fix Savannah bug #32902.
2862
2863 Patch taken from
2864
2865 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
2866
2867 with slight modifications.
2868
2869 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
2870 handle fonts that incorrectly use \r at the beginning of an eexec
2871 block.
2872
Simon Bünzlidf14e6c2014-02-19 08:42:52 +010028732014-02-19 Simon Bünzli <zeniko@gmail.com>
2874
2875 Fix Savannah bug #41590.
2876
2877 * src/type1/t1load.c (parse_encoding): Protect against invalid
2878 number.
2879
Dave Arnold89a94d42014-02-12 23:45:47 +010028802014-02-12 Dave Arnold <darnold@adobe.com>
2881
2882 [cff] Optimize by using `FT_MulDiv'.
2883 Suggested by Alexei.
2884
2885 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
2886
Werner Lemberg85ee27a2014-02-12 23:27:41 +010028872014-02-12 Werner Lemberg <wl@gnu.org>
2888
2889 Fix Savannah bug #41465.
2890
2891 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
2892 (DISTCLEAN): Remove `freetype-config'.
2893
Sean McBride7be2a942014-02-08 13:55:38 +010028942014-02-08 Sean McBride <sean@rogue-research.com>
2895
2896 Fix clang static analyzer and compiler warnings.
2897
2898 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
2899 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
2900 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
2901 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
2902 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
2903 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
2904 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
2905 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
2906 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
2907 code.
2908
2909 * src/autofit/afmodule.c (af_property_get_face_globals,
2910 af_property_set, af_property_get), src/base/ftbitmap.c
2911 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
2912
2913 * src/base/ftobjs.c (ft_remove_renderer): Protect against
2914 library == NULL.
2915 (ft_property_do): Make function static.
2916
2917 * src/base/ftrfork.c: Include `ftbase.h'.
2918
2919 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
2920 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
2921 (T1_Compute_Max_Advance): Avoid compiler warning.
2922
2923 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
2924 variable.
2925
Werner Lembergab98c5e2014-02-08 11:34:33 +010029262014-02-08 Werner Lemberg <wl@gnu.org>
2927
2928 Fix Windows build directories.
2929
2930 The build target is now `windows' instead of `win32'.
2931
2932 Problem reported by Nickolas George <darknova.clan@gmail.com>.
2933
2934 * builds/modules.mk: Don't use `win32' and `win16' (!) but
2935 `windows'.
2936
2937 * builds/windows/detect.mk, builds/windows/win32-def.mk:
2938 s/win32/windows/.
2939
Eugen Sawina8ceae42014-02-08 06:30:06 +010029402014-02-08 Eugen Sawin <esawin@mozilla.com>
2941
2942 Fix Savannah bug #41507.
2943
2944 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
2945 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
2946
Dave Arnold355b3592014-02-08 06:23:04 +010029472014-02-08 Dave Arnold <darnold@adobe.com>
2948
2949 [cff] Fix minor performance bug.
2950
2951 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
2952 calculations are now cached and not recomputed on each glyph.
2953
Werner Lemberg6dce1362014-02-05 15:40:47 +010029542014-02-05 Werner Lemberg <wl@gnu.org>
2955
2956 Fix problems with perl 5.8.8 as distributed with current MinGW.
2957
2958 * src/tools/afblue.pl: Work-around for Perl bug #63402.
2959 (string_re): Avoid `possessive quantifiers', which have been
2960 introduced in Perl version 5.10.
2961
Werner Lemberga8772912014-02-04 11:36:08 +010029622014-02-04 Werner Lemberg <wl@gnu.org>
2963
Werner Lembergd87f9a62014-02-04 16:14:09 +01002964 Fix compilation with MinGW.
2965
2966 Right now, compilation out of the box with latest MinGW is broken
2967 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
2968 cf.
2969
2970 https://sourceforge.net/p/mingw/bugs/2024/
2971 https://sourceforge.net/p/mingw/bugs/2046/
2972
2973 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
2974
29752014-02-04 Werner Lemberg <wl@gnu.org>
2976
Werner Lemberga8772912014-02-04 11:36:08 +01002977 [autofit] Minor fix.
2978
2979 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
2980 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
2981 of alternative standard characters.
2982 This also fixes a compilation warning in non-debug mode.
2983
Werner Lembergee3778d2014-02-03 11:16:47 +010029842014-02-03 Werner Lemberg <wl@gnu.org>
2985
2986 [cff] Fix Savannah bug #41363.
2987
2988 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
2989 parameter check.
2990 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
2991 we are scaling the outline.
2992 (cf2_getPpemY): Remove problematic assertion.
2993
Werner Lemberga3364002014-01-26 09:45:23 +010029942014-01-26 Werner Lemberg <wl@gnu.org>
2995
2996 [autofit] Introduce two more slots for standard characters.
2997
2998 This is useful for OpenType features like `c2sc' (caps to small
2999 caps) that don't have lowercase letters by definition, or other
3000 features that mainly operate on numerals.
3001
3002 * src/autofit/afscript.h: Add more standard characters.
3003
3004 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
3005 (AF_ScriptClassRec): Add members to hold two more standard
3006 characters.
3007 (AF_DEFINE_SCRIPT_CLASS): Updated.
3008
3009 * src/autofit/afglobal.c, src/autofit/afglobal.h,
3010 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
3011 Update use of `SCRIPT' macro.
3012
3013 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3014 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
3015 standard characters.
3016
Werner Lembergeb7691c2014-01-24 19:04:22 +010030172014-01-24 Werner Lemberg <wl@gnu.org>
3018
3019 Fix Savannah bug #41320.
3020
3021 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
3022 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
3023
Werner Lemberg8b281f82014-01-23 08:14:53 +010030242014-01-23 Werner Lemberg <wl@gnu.org>
3025
Werner Lemberg752f3912014-01-23 09:14:25 +01003026 Fix Savannah bug #41310.
3027
3028 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
3029 Don't check metrics, which this format doesn't have.
3030 This is another correction to the commit from 2013-11-21.
3031
30322014-01-23 Werner Lemberg <wl@gnu.org>
3033
Werner Lemberg8b281f82014-01-23 08:14:53 +01003034 Fix Savannah bug #41309.
3035
3036 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
3037 of `T1_ToFixedArray'.
3038
3039 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
3040 `t1_parse_font_matrix'.
3041
3042 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
3043 `t1_parse_font_matrix'.
3044 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
3045
3046 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
3047 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
3048
Werner Lembergff8dc312014-01-22 09:19:57 +010030492014-01-22 Werner Lemberg <wl@gnu.org>
3050
3051 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
3052
Werner Lemberg6a700782014-01-16 08:55:40 +010030532014-01-16 Werner Lemberg <wl@gnu.org>
3054
3055 [autofit] Improve tracing of style coverages.
3056
3057 * include/internal/fttrace.h: Add `afglobal' for tracing style
3058 coverages.
3059
3060 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
3061 (FT_COMPONENT): Define.
3062 (af_face_globals_compute_style_coverage): Trace `gstyles' array
3063 data.
3064
Werner Lemberg7cbfdff2014-01-09 07:26:06 +010030652014-01-09 Werner Lemberg <wl@gnu.org>
3066
3067 Fix Savannah bug #41158.
3068
3069 * builds/unix/install.mk (install): Create man page directory.
3070
Chongyu Zhu94c66942014-01-08 08:52:59 +010030712014-01-08 Chongyu Zhu <lembacon@gmail.com>
3072
3073 [arm] Fix Savannah bug #41138, part 2.
3074
3075 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
3076 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
3077 preprocessor conditionals for `add.w'.
3078
Werner Lembergc46fa862014-01-08 08:45:40 +010030792014-01-08 Werner Lemberg <wl@gnu.org>
3080
3081 [autofit] Fix Savannah bug #41138, part 1.
3082
3083 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
3084 enumeration names for generated `#else'.
3085
3086 * src/autofit/afblue.h: Regenerated.
3087
Werner Lemberg3e5a3742014-01-06 07:53:10 +010030882014-01-06 Werner Lemberg <wl@gnu.org>
3089
3090 Add manual page for `freetype-config'.
3091 Contributed by Nis Martensen <nis.martensen@web.de>.
3092
3093 * docs/freetype-config.1: New file.
3094
3095 * builds/unix/unix-def.in (mandir): Define.
3096 * builds/unix/install.mk (install, uninstall): Handle manpage.
3097
Werner Lemberg991cbcc2014-01-05 13:24:56 +010030982014-01-05 Werner Lemberg <wl@gnu.org>
3099
3100 [autofit] Minor fixes for `afblue.pl'.
3101
3102 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
3103 <Handling #endif>: Use proper indentation for generated `#else'.
3104
3105 * src/autofit/afblue.h: Regenerated.
3106
Werner Lemberg0d977442014-01-04 11:46:34 +010031072014-01-04 Werner Lemberg <wl@gnu.org>
3108
3109 [autofit] Fix Indic scripts.
3110
3111 Split the single, incorrect Indic entry into separate scripts so
3112 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
3113 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
3114 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
3115 entries for Meetai Mayak and Sharada – the Unicode ranges were
3116 incorrect (and nobody has complained about that), fonts are scarce
3117 for those scripts, and the Indic auto-hinter support is rudimentary
3118 anyways.
3119
3120 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
3121 AF_CONFIG_OPTION_CJK.
3122
3123 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
3124 Use it, together with AF_CONFIG_OPTION_INDIC and
3125 AF_CONFIG_OPTION_CJK, to update.
3126
3127 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
3128 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
3129 Sort entries by tags.
3130
Werner Lemberg5c7f5502014-01-03 10:48:26 +010031312014-01-03 Werner Lemberg <wl@gnu.org>
3132
Werner Lembergecdb0e32014-01-03 20:49:31 +01003133 [autofit] Thinko.
3134
3135 * src/autofit/hbshim.c (af_get_char_index): Similar to
3136 `af_get_coverage', reject glyphs which are not substituted.
3137
31382014-01-03 Werner Lemberg <wl@gnu.org>
3139
Werner Lemberga42f9182014-01-03 18:29:41 +01003140 [autofit] Fix handling of default coverages.
3141
Werner Lemberg1b5bc892014-01-03 18:33:24 +01003142 With this commit, the implementation of coverage handling is
3143 completed.
3144
3145 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
3146 do.
3147 Reject coverages which don't contain appropriate glyphs for blue
3148 zones.
3149
31502014-01-03 Werner Lemberg <wl@gnu.org>
3151
3152 [autofit] Fix handling of default coverages.
3153
Werner Lemberga42f9182014-01-03 18:29:41 +01003154 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3155 First handle non-default coverages, then the default coverage of the
3156 default script, and finally the other default coverages.
3157
31582014-01-03 Werner Lemberg <wl@gnu.org>
3159
Werner Lembergf45749b2014-01-03 18:09:36 +01003160 [autofit] Fix scaling of HarfBuzz shaping.
3161
3162 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
3163
31642014-01-03 Werner Lemberg <wl@gnu.org>
3165
Werner Lemberg5c7f5502014-01-03 10:48:26 +01003166 [autofit] Better ftgrid support.
3167
3168 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
3169 parameters `is_blue' and `blue_offset'.
3170
Werner Lemberg73cc8332014-01-01 07:10:36 +010031712014-01-01 Werner Lemberg <wl@gnu.org>
3172
Werner Lemberg55cd7e02014-01-02 13:07:48 +01003173 [autofit] Remove some styles.
3174
3175 * src/autofit/afcover.h: Remove coverages for alternative fractions,
3176 denominators, numerators, and fractions.
3177
3178 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
3179
31802014-01-01 Werner Lemberg <wl@gnu.org>
3181
Werner Lembergc973e672014-01-01 16:34:42 +01003182 [autofit] Add more styles.
3183
3184 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
3185 auxiliary macros; use them to define styles for Cyrillic, Greek, and
3186 Latin.
3187
3188 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
3189 Since those digits are used in combination with ordinary letters, it
3190 makes no sense to handle them separately.
3191
3192 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
3193 `options' parameter to 4 bits.
3194
31952014-01-01 Werner Lemberg <wl@gnu.org>
3196
Werner Lembergabb2f732014-01-01 08:00:16 +01003197 [autofit] Fix style assignments to glyphs.
3198
3199 * src/autofit/hbshim.c (af_get_coverage)
3200 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
3201 so that we can skip glyphs that have both GSUB and GPOS data.
3202
32032014-01-01 Werner Lemberg <wl@gnu.org>
3204
Werner Lemberg0950f3a2014-01-01 07:48:20 +01003205 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
3206
32072014-01-01 Werner Lemberg <wl@gnu.org>
3208
Werner Lemberg73cc8332014-01-01 07:10:36 +01003209 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
3210
3211 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
3212 Redefine to construct HarfBuzz features.
3213 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
3214
3215 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
3216 `y_offset' to adjust `best_y'.
3217
Werner Lembergc9d99472013-12-31 08:16:57 +010032182013-12-31 Werner Lemberg <wl@gnu.org>
3219
Werner Lemberg785f3852013-12-31 09:45:10 +01003220 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
3221
32222013-12-31 Werner Lemberg <wl@gnu.org>
3223
Werner Lembergc9d99472013-12-31 08:16:57 +01003224 [autofit] Fix interface of `af_get_char_index'.
3225
3226 * src/autofit/hbshim.c (af_get_char_index): Return error value.
3227 Add argument for y offset (to be used in a yet-to-come patch).
3228
3229 * src/autofit/hbshim.h, src/autofit/afcjk.c,
3230 src/autofit/aflatin.c: Updated.
3231
Werner Lemberg44aa7e02013-12-30 07:41:22 +010032322013-12-30 Werner Lemberg <wl@gnu.org>
3233
3234 [autofit] Don't combine multiple features into one set.
3235
3236 Combining them, as originally envisioned, would lead to much more
3237 complicated code, as investigations have shown meanwhile. The major
3238 drawback is that we run out of available style slots much earlier.
3239 However, this is only a theoretical issue since we don't support a
3240 large number of scripts currently.
3241
3242 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
3243 a single-element `COVERAGE' macro, sort the elements by the feature
3244 tags, and add entry for `ruby'.
3245
3246 * src/autofit/aftypes.h: Updated.
3247 * src/autofit/hbshim.c: Updated.
3248
Werner Lemberg6af01a02013-12-28 08:55:24 +010032492013-12-28 Werner Lemberg <wl@gnu.org>
3250
Werner Lemberg072dc452013-12-28 12:26:21 +01003251 [autofit] Code shuffling to reduce use of cpp macros.
3252
3253 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3254 Call `af_get_coverage' unconditionally.
3255
3256 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
3257
3258 * src/autofit/hbshim.c (af_get_coverage)
3259 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
3260
3261 * src/autofit/hbshim.h: Provide function declarations
3262 unconditionally.
3263
32642013-12-28 Werner Lemberg <wl@gnu.org>
3265
Werner Lemberg17af5862013-12-28 10:33:01 +01003266 [autofit] Add wrapper function for `FT_Get_Char_Index'.
3267
3268 Yet-to-come changes will provide HarfBuzz functionality for the new
3269 function.
3270
3271 * src/autofit/hbshim.c (af_get_char_index): New function.
3272 * src/autofit/hbshim.h: Updated.
3273
3274 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3275 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
3276
3277 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
3278 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
3279 Updated.
3280
32812013-12-28 Werner Lemberg <wl@gnu.org>
3282
Werner Lemberg6af01a02013-12-28 08:55:24 +01003283 [autofit] Use `global' HarfBuzz font object.
3284
3285 We now use `hb_font' instead of `hb_face' since yet-to-come changes
3286 need this.
3287
3288 * src/autofit/afglobal.h: Include `hbshim.h'.
3289 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
3290 `hb_font'.
3291
3292 * src/autofit/afglobal.c (af_face_globals_new)
3293 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
3294 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
3295 `hb_font'.
3296
3297 * src/autofit/hbshim.h: Include HarfBuzz headers.
3298
3299 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
3300 headers.
3301 (af_get_coverage): Updated.
3302
Werner Lembergd32a7d32013-12-27 19:26:04 +010033032013-12-27 Werner Lemberg <wl@gnu.org>
3304
3305 [autofit] Handle `DFLT' OpenType script for coverages.
3306
3307 * include/ftautoh.h: Document new `default-script' property.
3308
3309 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
3310 type of first parameter.
3311 (script_tags): Add one more element.
3312 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
3313
3314 * src/autofit/hbshim.h: Updated.
3315
3316 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3317 Updated.
3318
3319 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
3320
3321 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
3322 member.
3323
3324 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
3325 `default-script' property.
3326 (af_autofitter_init): Updated.
3327
suzuki toshiyae2d2b152013-12-27 16:44:24 +090033282013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3329
3330 [ftrfork] Fix the face order difference between POSIX and Carbon.
3331
3332 The fragmented resources in Suitcase and .dfont should be reordered
Werner Lemberg00a7b512013-12-27 19:18:49 +01003333 when `POST' resource for Type1 is being restored, but reordering of
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003334 sfnt resources induces the different face order. Now the ordering
Werner Lemberg00a7b512013-12-27 19:18:49 +01003335 is restricted to `POST' resource only, to prevent the different
3336 order issue (e.g. the face index in the fontconfig cache generated
3337 with Carbon framework is incompatible with that by FreeType 2
3338 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
3339
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003340 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
3341 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
3342
3343 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
Werner Lemberg44aa7e02013-12-30 07:41:22 +01003344 `sort_by_res_id' to control the fragmented resource ordering.
Werner Lemberg00a7b512013-12-27 19:18:49 +01003345 * include/internal/ftrfork.h: Declare new switch.
3346 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
3347 resource, and disable the sorting for `sfnt' resource.
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003348
Werner Lemberg5f577462013-12-25 08:50:50 +010033492013-12-25 Werner Lemberg <wl@gnu.org>
3350
3351 Fix Savannah bug #40997.
3352
3353 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
3354 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
3355 be set.
3356 * src/cff/cffobjs.c (cff_face_init): Ditto.
3357 * src/cid/cidobjs.c (cid_face_init): Ditto.
3358 * src/pcf/pcfread.c (pcf_load_font): Ditto.
3359 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
3360 * src/type1/t1objs.c (T1_Face_Init): Ditto.
3361 * src/type42/t42objs.c (T42_Face_Init): Ditto.
3362 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
3363
Werner Lembergc4e968e2013-12-21 07:23:08 +010033642013-12-21 Werner Lemberg <wl@gnu.org>
3365
Werner Lemberg19241342013-12-21 21:31:38 +01003366 [autofit] Introduce `coverages'.
3367
3368 Coverages are the interface to the HarfBuzz library to acces
3369 OpenType features for handling glyphs not addressable by the cmap.
3370
3371 Right now, compilation of HarfBuzz is only added to the development
3372 build. A solution for standard build mode will be delayed until
3373 HarfBuzz gets split into two libraries to avoid mutual dependencies
3374 between FreeType and HarfBuzz.
3375
3376 Note that this is only a first step in handling coverages, basically
3377 providing the framework only. Code for handling selected OpenType
3378 features (this is, actually using the data in `afcover.h') will
3379 follow.
3380
3381 * devel/ftoption.h, include/config/ftoption.h
3382 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
3383
3384 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
3385 New files.
3386
3387 * src/autofit/afscript.h: Add HarfBuzz script name tags.
3388
3389 * src/autofit/afstyles.h: Add default coverage enumeration values.
3390
3391 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
3392 (AF_Coverage): New enumeration (generated by `afcover.h').
3393 (AF_StyleClassRec): New member `coverage'.
3394 (AF_DEFINE_STYLE_CLASS): Updated.
3395
3396 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
3397 data.
3398
3399 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
3400 (AF_SCRIPT_FALLBACK): Renamed to ...
3401 (AF_STYLE_FALLBACK): ... this.
3402
3403 * src/autofit/afglobal.c: Include `hbshim.c'.
3404 Update use of `SCRIPT' and `STYLE' macros.
3405 (af_face_globals_compute_style_coverage)
3406 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
3407 Update.
3408
3409 * src/autofit/afmodule.h (AF_ModuleRec):
3410 s/fallback_script/fallback_style/.
3411
3412 * src/autofit/afmodule.c (af_property_set): Adapt handling of
3413 `fallback-script' property to set a fallback style.
3414 (af_property_get, af_autofitter_init): Updated.
3415
3416 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
3417
3418 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
3419
3420 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
3421 `hbshim.c'.
3422
3423 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
3424 (AUTOF_DRV_H): Add `afcover.h'.
3425
3426 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
3427 all libraries needed by FreeType.
3428
34292013-12-21 Werner Lemberg <wl@gnu.org>
3430
Werner Lembergb337fa22013-12-21 19:33:15 +01003431 Fix Savannah bug #40975 (sort of).
3432
3433 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
3434 behave the same as the Windows TrueType engine for the invalid case.
3435
34362013-12-21 Werner Lemberg <wl@gnu.org>
3437
Werner Lemberg3bf60952013-12-21 08:49:11 +01003438 [autofit] Make PIC mode work actually.
3439
3440 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
3441 enumeration values automatically generated by including `afscript.h'
3442 and friends.
3443
3444 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
3445
34462013-12-21 Werner Lemberg <wl@gnu.org>
3447
Werner Lembergbd413862013-12-21 08:14:25 +01003448 Fix PIC linking.
3449
3450 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
3451 generated function name.
3452
3453 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
3454 to ...
3455 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
3456 function name correctly corresponds to what the macro framework
3457 expects.
3458
3459 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
3460 that PIC functions are compiled also.
3461
34622013-12-21 Werner Lemberg <wl@gnu.org>
3463
Werner Lembergc4e968e2013-12-21 07:23:08 +01003464 [base] Add missing dependencies to Makefile.
3465
3466 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
3467 (BASE_H): Add `basepic.h'.
3468
Werner Lemberg974b1932013-12-20 17:26:26 +010034692013-12-20 Werner Lemberg <wl@gnu.org>
3470
Werner Lemberg8a8f3752013-12-20 18:35:35 +01003471 [autofit] Fix PIC compilation.
3472
3473 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3474 src/autofit/aflatin.c (af_latin_metrics_init_widths)
3475 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
3476
3477 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
3478 AF_DEFINE_STYLE_CLASS.
3479
3480 * src/autofit/afpic.c: Include `afglobal.h'.
3481 (autofit_module_class_pic_init): Typo.
3482
3483 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
3484 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
3485 parameter and structure member.
3486
34872013-12-20 Werner Lemberg <wl@gnu.org>
3488
Werner Lemberg974b1932013-12-20 17:26:26 +01003489 [autofit] Introduce `styles'.
3490
3491 This is the new top-level structure for handling glyph input data;
3492 scripts are now defined separately.
3493
3494 * src/autofit/aftypes.h (SCRIPT): Updated.
3495 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
3496 members to ...
3497 (AF_Style_ClassRec): ... this new structure.
3498 (AF_Style): New enumeration.
3499 (AF_StyleMetricsRec): Replace `script' enumeration with
3500 `style_class' pointer.
3501 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
3502 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
3503
3504 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
3505 * src/autofit/afscript.h: Updated.
3506
3507 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3508 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
3509
3510 * src/autofit/afglobal.c (SCRIPT): Updated.
3511 (STYLE): Redefine macro to load `afstyles.h'.
3512 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
3513 (af_style_names): ... this array.
3514 (af_face_globals_compute_script_coverage): Renamed to...
3515 (af_face_globals_compute_style_coverage): ... this.
3516 Updated.
3517 (af_face_globals_new, af_face_globals_free,
3518 af_face_globals_get_metrics): Updated.
3519
3520 * src/autofit/afglobal.h (SCRIPT): Updated.
3521 (STYLE): Redefine macro to load `afstyles.h'.
3522 (AF_SCRIPT_FALLBACK): Update definition. This will get more
3523 refinements with later on.
3524 (AF_SCRIPT_UNASSIGNED): Replace with...
3525 (AF_STYLE_UNASSIGNED): ... this macro.
3526 (AF_FaceGlobalsRec): Updated.
3527
3528 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
3529 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
3530 af_latin_hint_edges): Updated.
3531
3532 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
3533 (af_ltn2_uniranges): Removed.
3534
3535 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
3536 Updated.
3537
3538 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
3539 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
3540 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
3541 members.
3542
3543 * src/autofit/afranges.h: Updated.
3544
3545 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
3546
Werner Lembergd8324572013-12-19 15:45:24 +010035472013-12-19 Werner Lemberg <wl@gnu.org>
3548
3549 [autofit] Factor scripts and uniranges out of writing system files.
3550
3551 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
3552
3553 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
3554 parameters, taking data from the writing system files.
3555
3556 * src/autofit/aftypes.h: Updated.
3557
3558 * src/autofit/afglobal.c: Include `afranges.h'.
3559 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
3560 * src/autofit/afglobal.c: Include `afranges.h'.
3561 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
3562
3563 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
3564 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
3565 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
3566 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
3567 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
3568
3569 * src/autofit/afpic.c: Updated.
3570
3571 * src/autofir/autofit.c: Include `afranges.c'.
3572 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
3573
Werner Lemberg9a354552013-12-18 10:36:06 +010035742013-12-18 Werner Lemberg <wl@gnu.org>
3575
Werner Lemberg73f31982013-12-19 15:24:17 +01003576 [autofit] More code orthogonality.
3577
3578 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
3579 pointer to an `AF_ScriptClass' structure with `script' index of type
3580 `AF_Script'.
3581 Move some code around.
3582
3583 * src/autofit/afcjk.c: Include `afpic.h'.
3584 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
3585 af_cjk_hint_edges): Updated.
3586
3587 * src/autofit/aflatin.c: Include `afpic.h'.
3588 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
3589 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
3590
3591 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
3592
3593 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
3594 Updated.
3595
35962013-12-18 Werner Lemberg <wl@gnu.org>
3597
Werner Lemberg3f91cb32013-12-18 12:59:35 +01003598 [autofit] s/ScriptMetrics/StyleMetrics/.
3599
36002013-12-18 Werner Lemberg <wl@gnu.org>
3601
Werner Lemberg4fccc212013-12-18 12:53:01 +01003602 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
3603
36042013-12-18 Werner Lemberg <wl@gnu.org>
3605
Werner Lembergf4df4072013-12-18 10:39:30 +01003606 [autofit] s/gscripts/gstyles/.
3607
36082013-12-18 Werner Lemberg <wl@gnu.org>
3609
Werner Lemberg9a354552013-12-18 10:36:06 +01003610 [autofit] s/glyph_scripts/glyph_styles/.
3611
3612 This is the first commit of a series to create a new top-level
3613 structure (a `style') for handling scripts, writing_systems, and
3614 soon-to-be-added coverages.
3615
Werner Lemberg7a5fc2f2013-12-17 13:29:53 +010036162013-12-17 Werner Lemberg <wl@gnu.org>
3617
3618 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
3619
Infinality8bb09b02013-12-11 09:01:13 +010036202013-12-11 Infinality <infinality@infinality.net>
3621
3622 [truetype] Simplify logic of rendering modes.
3623
3624 This patch unifies the subpixel and non-subpixel cases.
3625
3626 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
3627 `grayscale_hinting'; all code should refer to `grayscale' instead.
3628 Remove unused `native_hinting' member.
3629 Rename `subpixel_hinting' member to `subpixel.
3630
3631 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
3632 (tt_loader_init): Updated.
3633
3634 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
3635 Updated.
3636
Werner Lemberge9d95aa2013-12-11 07:48:51 +010036372013-12-11 Werner Lemberg <wl@gnu.org>
3638
3639 [documentation] Add section how to include FreeType header files.
3640 Problem reported by David Kastrup <dak@gnu.org>.
3641
3642 Surprisingly, a description how to do that was completely missing in
3643 the API reference.
3644
3645 * include/freetype.h, include/ftchapters.h: New documentation
3646 section `header_inclusion'.
3647
Werner Lemberg05c786d2013-12-10 08:38:57 +010036482013-12-10 Werner Lemberg <wl@gnu.org>
3649
Werner Lemberg91932592013-12-10 13:24:07 +01003650 [autofit] s/DFLT/NONE/, s/dflt/none/.
3651
36522013-12-10 Werner Lemberg <wl@gnu.org>
3653
Werner Lemberg45244f82013-12-10 13:18:11 +01003654 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
3655
36562013-12-10 Werner Lemberg <wl@gnu.org>
3657
Werner Lemberg69d1a362013-12-10 10:12:27 +01003658 [truetype] Fix scaling of vertical phantom points.
3659
3660 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
3661 pp4.x also.
3662
36632013-12-10 Werner Lemberg <wl@gnu.org>
3664
Werner Lemberg05c786d2013-12-10 08:38:57 +01003665 [truetype] Fix positioning of composite glyphs.
3666 Problem reported by Nigel Tao <nigeltao@golang.org>.
3667
3668 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
3669 the glyph (component) by a fractional value computed from the LSB
3670 phantom point. This is wrong, since the horizontal phantom points
3671 get rounded horizontally later on.
3672
Werner Lembergdd8050a2013-12-08 23:14:46 +010036732013-12-08 Werner Lemberg <wl@gnu.org>
3674
3675 * Version 2.5.2 released.
3676 =========================
3677
3678
3679 Tag sources with `VER-2-5-2'.
3680
3681 * docs/VERSION.DLL: Update documentation and bump version number to
3682 2.5.2.
3683
3684 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3685 builds/windows/vc2005/index.html,
3686 builds/windows/vc2008/freetype.vcproj,
3687 builds/windows/vc2008/index.html,
3688 builds/windows/vc2010/freetype.vcxproj,
3689 builds/windows/vc2010/index.html,
3690 builds/windows/visualc/freetype.dsp,
3691 builds/windows/visualc/freetype.vcproj,
3692 builds/windows/visualc/index.html,
3693 builds/windows/visualce/freetype.dsp,
3694 builds/windows/visualce/freetype.vcproj,
3695 builds/windows/visualce/index.html,
3696 builds/wince/vc2005-ce/freetype.vcproj,
3697 builds/wince/vc2005-ce/index.html,
3698 builds/wince/vc2008-ce/freetype.vcproj,
3699 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
3700
Werner Lembergec8853c2014-03-06 19:13:45 +01003701 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01003702
3703 * builds/unix/configure.raw (version_info): Set to 17:1:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01003704 * CMakeLists.txt (VERSION_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01003705 * docs/CHANGES: Updated.
3706
Werner Lemberg98d185c2013-12-07 09:26:55 +010037072013-12-07 Werner Lemberg <wl@gnu.org>
3708
3709 [truetype] Next round in phantom point handling.
3710
3711 Greg Hitchcock provided very interesting insights into the
3712 complicated history of the horizontal positions of the TSB and BSB
3713 phantom points.
3714
3715 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
3716 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
3717 `grayscale_hinting' flags as conditionals for the x position of TSB
3718 and BSB.
3719
Werner Lembergfcdb7842013-12-05 15:53:27 +010037202013-12-05 Werner Lemberg <wl@gnu.org>
3721
3722 * builds/freetype.mk (FT_CC): Removed. Unused.
3723
Werner Lemberg64b395c2013-12-04 06:18:56 +010037242013-12-04 Werner Lemberg <wl@gnu.org>
3725
3726 [sfnt] Fix handling of embedded bitmap strikes.
3727
3728 This corrects the commit from 2013-11-21. Problem reported by
3729 Andrey Panov <panov@canopus.iacp.dvo.ru>.
3730
3731 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
3732 detect excessive bytes for bit-aligned bitmaps.
3733
Werner Lembergbdd5e752013-12-03 06:57:02 +010037342013-12-03 Werner Lemberg <wl@gnu.org>
3735
Werner Lembergc2b47532013-12-03 07:01:57 +01003736 [truetype] Remove dead code.
3737
3738 Reported by Nigel Tao <nigeltao@golang.org>.
3739
3740 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
3741 `preserve_pps' field.
3742 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
3743
37442013-12-03 Werner Lemberg <wl@gnu.org>
3745
Werner Lembergbdd5e752013-12-03 06:57:02 +01003746 [truetype] Fix phantom point handling.
3747
3748 This is a further improvement to the changes from 2013-11-06.
3749
3750 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
3751 are rounded horizontally, vertical ones are rounded vertically.
3752 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
3753 points in pre-ClearType mode is zero, as shown in the OpenType
3754 specification.
3755
Werner Lemberg64872a52013-12-02 07:51:17 +010037562013-12-02 Werner Lemberg <wl@gnu.org>
3757
3758 [truetype] Fix change from 2013-11-20.
3759
3760 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
3761
3762 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
3763 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
3764 `IS_HINTED' clause.
3765 Also remove redundant check using `maxSizeOfInstructions' – in
3766 simple glyphs, the bytecode data comes before the outline data, and
3767 a validity test for this is already present.
3768
Werner Lemberg52166ab2013-11-27 10:10:16 +010037692013-11-27 Werner Lemberg <wl@gnu.org>
3770
3771 [autofit] Fix use of dumping functions in `ftgrid' demo program.
3772
3773 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
3774 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
3775 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
3776 handle output to stdout.
3777 Use AF_DUMP.
3778 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
3779 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
3780
Werner Lemberg3aee4292013-11-25 00:28:11 +010037812013-11-25 Werner Lemberg <wl@gnu.org>
3782
3783 * Version 2.5.1 released.
3784 =========================
3785
3786
3787 Tag sources with `VER-2-5-1'.
3788
3789 * docs/VERSION.DLL: Update documentation and bump version number to
3790 2.5.1.
3791
3792 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3793 builds/windows/vc2005/index.html,
3794 builds/windows/vc2008/freetype.vcproj,
3795 builds/windows/vc2008/index.html,
3796 builds/windows/vc2010/freetype.vcxproj,
3797 builds/windows/vc2010/index.html,
3798 builds/windows/visualc/freetype.dsp,
3799 builds/windows/visualc/freetype.vcproj,
3800 builds/windows/visualc/index.html,
3801 builds/windows/visualce/freetype.dsp,
3802 builds/windows/visualce/freetype.vcproj,
3803 builds/windows/visualce/index.html,
3804 builds/wince/vc2005-ce/freetype.vcproj,
3805 builds/wince/vc2005-ce/index.html,
3806 builds/wince/vc2008-ce/freetype.vcproj,
3807 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
3808
3809 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
3810
3811 * builds/unix/configure.raw (version_info): Set to 17:0:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01003812 * CMakeLists.txt (VERSION_PATCH): Set to 1.
Werner Lemberg3aee4292013-11-25 00:28:11 +01003813 * docs/CHANGES, docs/release: Updated.
3814
Werner Lemberg9326caf2013-11-23 23:59:25 +010038152013-11-23 Werner Lemberg <wl@gnu.org>
3816
Werner Lemberg063ee6b2013-11-24 00:19:17 +01003817 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
3818
3819 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
3820 TRICK_NAMES_COUNT): Updated.
3821 (trick_names): Add family name for the two fonts.
3822
38232013-11-23 Werner Lemberg <wl@gnu.org>
3824
Werner Lemberg9326caf2013-11-23 23:59:25 +01003825 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
3826
Werner Lemberg427b1762013-11-21 13:10:56 +010038272013-11-21 Werner Lemberg <wl@gnu.org>
3828
Werner Lemberg9326caf2013-11-23 23:59:25 +01003829 [sfnt] Typo.
Werner Lemberg8af2a1c2013-11-21 13:13:12 +01003830
3831 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3832
3833 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
3834 value if the font lacks an `OS/2' table.
3835
38362013-11-21 Werner Lemberg <wl@gnu.org>
3837
Werner Lemberg64b395c2013-12-04 06:18:56 +01003838 [sfnt] Improve handling of buggy embedded bitmap strikes.
Werner Lemberg427b1762013-11-21 13:10:56 +01003839
3840 We are now able to successfully load `AppleMyoungJo.ttf'.
3841 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3842
3843 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
3844 format.
3845
Werner Lemberg28626862013-11-20 21:06:18 +010038462013-11-20 Werner Lemberg <wl@gnu.org>
3847
3848 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
3849
3850 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
3851
3852 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
3853
3854 for details.
3855
3856 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
3857 tables also for setting `autohint'.
3858
3859 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
3860 `TT_Process_Composite_Glyph' for handling unreliable values of
3861 `maxSizeOfInstructions'.
3862
Werner Lembergbc25de62013-11-16 07:52:20 +010038632013-11-16 Werner Lemberg <wl@gnu.org>
3864
3865 [sfnt] Fix `OS/2' table version 5 support.
3866
3867 We now follow the `official' announcement from Microsoft (on the
3868 OpenType mailing list, which unfortunately hasn't a public archive).
3869
3870 * include/freetype/tttables.h (TT_OS2):
3871 s/usLowerPointSize/usLowerOpticalPointSize/,
3872 s/usUpperPointSize/usUpperOpticalPointSize/.
3873
3874 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
3875 default values.
3876
Werner Lembergfae38202013-11-13 08:55:46 +010038772013-11-13 Werner Lemberg <wl@gnu.org>
3878
Werner Lembergc52b1292013-11-13 10:06:00 +01003879 * builds/unix/ft2unix.h: Remove. No longer necessary.
3880
3881 * builds/unix/install.mk (install): Updated.
3882
38832013-11-13 Werner Lemberg <wl@gnu.org>
3884
Werner Lembergfae38202013-11-13 08:55:46 +01003885 Simplify header file hierarchy.
3886
3887 This large patch changes the header file directory layout from
3888 `include/freetype/...' to `include/...', effectively removing one
3889 level. Since the file `ft2build.h' is also located in `include'
3890 (and it stays there even after installation), all FreeType header
3891 files are now in a single directory.
3892
3893 Applications that use (a) `freetype-config' or FreeType's
3894 `pkg-config' file to get the include directory for the compiler, and
3895 (b) the documented way for header inclusion like
3896
3897 #include <ft2build.h>
3898 #include FT_FREETYPE_H
3899 ...
3900
3901 don't need any change to the source code.
3902
3903 * include/freetype/*: Move up to...
3904 * include/*: ... this directory.
3905
3906 * builds/amiga/include/freetype/*: Move up to...
3907 * builds/amiga/include/*: ... this directory.
3908
3909 */*: Essentially do `s@/freetype/@/@' where appropriate.
3910
3911 * CMakeList.txt: Simplify.
3912 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
3913 `--cflags', return a single directory.
3914 * builds/unix/install.mk (install): No longer try to remove `cache'
3915 and `internal' subdirectories; instead, remove the `freetype'
3916 subdirectory.
3917
Werner Lembergea5c7812013-11-12 08:55:26 +010039182013-11-12 Werner Lemberg <wl@gnu.org>
3919
3920 [truetype] Fix last `truetype' commit.
3921
3922 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
3923 Return error value.
3924 (load_truetype_glyph): Updated.
3925
Werner Lemberg78333282013-11-10 06:26:52 +010039262013-11-10 Werner Lemberg <wl@gnu.org>
3927
3928 * docs/CMAKE: New dummy file.
3929
Dave Arnolddd213012013-11-08 10:52:51 +010039302013-11-08 Dave Arnold <darnold@adobe.com>
3931
3932 [cff] Fix for hints that touch.
3933
3934 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
3935 finding index value of insertion point.
3936
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +010039372013-11-06 Werner Lemberg <wl@gnu.org>
3938
Werner Lemberg5e225b72013-11-06 08:41:59 +01003939 [truetype] Fix handling of phantom points in composite glyphs.
3940 Problem reported by Nigel Tao <nigeltao@golang.org>.
3941
3942 This is a follow-up commit to the previous one.
3943
3944 * src/truetype/ttgload.c (load_truetype_glyph): Call
3945 `tt_get_metrics' after loading the glyph header.
3946
39472013-11-06 Werner Lemberg <wl@gnu.org>
3948
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +01003949 [truetype] Improve emulation of vertical metrics.
3950
3951 This commit also improves the start values of vertical phantom
3952 points. Kudos to Greg Hitchcock for help.
3953
3954 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
3955 `yMax' value. Replace code with fixed Microsoft definition.
3956 (tt_get_metrics): Updated.
3957 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
3958 points, taken from both the OpenType specification and private
3959 communication with Greg (which will eventually be added to the
3960 standard).
3961 Fix horizontal position of `pp3' and `pp4'.
3962
3963 * src/truetype/ttgload.h: Updated.
3964
3965 * src/truetype/ttdriver.c (tt_get_advances): Updated.
3966
3967 * docs/CHANGES: Updated.
3968
Werner Lembergc6064282013-11-05 13:29:15 +010039692013-11-05 Werner Lemberg <wl@gnu.org>
3970
Werner Lemberg50740532013-11-05 23:19:18 +01003971 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
3972 PlatformToolSet version 110 is for VC2012.
3973
3974 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
3975
39762013-11-05 Werner Lemberg <wl@gnu.org>
3977
Werner Lembergc6064282013-11-05 13:29:15 +01003978 [truetype] Correctly reset point tags for glyph components.
3979 Problem reported by Nigel Tao <nigeltao@golang.org>.
3980
3981 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
3982
Werner Lemberg35b08182013-11-02 08:28:41 +010039832013-11-02 Werner Lemberg <wl@gnu.org>
3984
Werner Lemberg7d449432013-11-02 11:36:37 +01003985 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
3986
3987 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
3988 get info on subpixel hinting.
3989
3990 * docs/CHANGES: Updated.
3991
39922013-11-02 Werner Lemberg <wl@gnu.org>
3993
Werner Lemberg35b08182013-11-02 08:28:41 +01003994 Fix Savannah bug #40451.
3995
3996 Simply apply the patch from the bug report.
3997
3998 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
3999 include/freetype/config/ftconfig.h: The used #pragma directives only
4000 work with gcc versions 4.6 and higher.
4001
Werner Lembergebf52d62013-11-01 13:26:28 +010040022013-11-01 Werner Lemberg <wl@gnu.org>
4003
Werner Lembergafa0d592013-11-01 22:27:27 +01004004 * docs/CHANGES: Updated.
4005
40062013-11-01 Werner Lemberg <wl@gnu.org>
4007
Werner Lembergebf52d62013-11-01 13:26:28 +01004008 [truetype] Minor code refactoring.
4009
4010 Two benefits: The allocated FDEF (and IDEF) array gets slightly
4011 smaller, and the `ttdebug' demo program has access to function
4012 numbers without additional costs.
4013
4014 Fortunately, no changes to FontForge are necessary – this is the
4015 only external TrueType debugger I know of, but others may exist and
4016 should check the code accordingly.
4017
4018 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
4019 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
4020 structure.
4021
4022 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
4023 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
4024 Updated.
4025
Werner Lembergee510512013-10-27 07:25:35 +010040262013-10-27 Werner Lemberg <wl@gnu.org>
4027
4028 [sfnt] Implement support for `OS/2' table version 5.
4029
4030 See
4031
4032 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
4033
4034 for the announcement.
4035
4036 * include/freetype/tttables.h (TT_OS2): Add fields
4037 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
4038 this structure only as a pointer through `FT_Get_Sfnt_Table', there
4039 shouldn't be any ABI problems.
4040
4041 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
4042
4043 * docs/CHANGES: Updated.
4044
Werner Lemberg994a8592013-10-24 08:50:34 +020040452013-10-24 Werner Lemberg <wl@gnu.org>
4046
4047 * README.git, docs/CHANGES, docs/INSTALL: Updated.
4048
John Carya0e4a732013-10-24 08:49:08 +020040492013-10-24 John Cary <cary@txcorp.com>
4050
4051 Provide cmake support.
4052
4053 * CMakeLists.txt: New file.
4054
Kenneth Miller4d87ac82013-10-23 20:10:56 +020040552013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
4056 Werner Lemberg <wl@gnu.org>
4057
4058 Provide support for x64 builds in Visual C++ project files.
4059
4060 * src/builds/win32: Renamed to...
4061 * src/builds/windows: This.
4062
4063 * src/builds/windows/vc2010/*: Updated to handle x64 target.
4064
4065 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
4066 appropriate.
4067
Werner Lemberg604838d2013-10-22 01:10:10 +020040682013-10-22 Werner Lemberg <wl@gnu.org>
4069
4070 * src/base/md5.c, src/base/md5.h: Updated to recent version.
4071
4072 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
4073
Werner Lembergdb9159c2013-10-22 10:27:50 +02004074 The canonical URL to get updates for this file is
4075
4076 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
4077
4078 as the author told me in private communication.
4079
Werner Lemberg34efe052013-10-19 21:14:40 +020040802013-10-19 Werner Lemberg <wl@gnu.org>
4081
Werner Lemberg75efc2d2013-10-19 21:46:03 +02004082 [autofit] s/SMALL_TOP/X_HEIGHT/.
4083
4084 * src/autofit/afblue.dat: Updated.
4085
4086 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4087
4088 * src/autofit/aflatin.c, src/autofit/aflatin.h,
4089 src/autofit/atlatin2.c: Updated.
4090
40912013-10-19 Werner Lemberg <wl@gnu.org>
4092
Werner Lemberg34efe052013-10-19 21:14:40 +02004093 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
4094
4095 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4096
Werner Lemberg955f6a82013-10-16 19:47:57 +020040972013-10-16 Werner Lemberg <wl@gnu.org>
4098
Werner Lemberga5f22a92013-10-17 11:08:25 +02004099 [autofit] Add description strings to script entries.
4100
4101 Currently, this is unused.
4102
4103 * src/autofit/afscript.h: Do it.
4104 * src/autofit/afglobal.c, src/autofit/afpic.c,
4105 src/autofit/aftypes.h: Updated.
4106
41072013-10-16 Werner Lemberg <wl@gnu.org>
4108
Werner Lemberg955f6a82013-10-16 19:47:57 +02004109 [autofit] Improve tracing message for extra light flag.
4110
4111 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
4112
Chongyu Zhu41632b52013-10-15 11:40:34 +020041132013-10-15 Chongyu Zhu <lembacon@gmail.com>
4114
4115 [arm] Fix thumb2 inline assembly under LLVM.
4116
4117 When using `ADD' with an immediate operand, the instruction is
4118 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
4119 immediate operand cannot exceed 4095. It will fail to compile with
4120 LLVM.
4121
4122 However, in GCC, due to some legacy compatibility considerations,
4123 `ADD.W' will be automatically emitted when the immediate operand is
4124 larger than 4095.
4125
4126 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4127 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
4128
4129 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
4130
Werner Lembergb6695242013-10-12 10:33:04 +020041312013-10-12 Werner Lemberg <wl@gnu.org>
4132
4133 [autofit] Improve tracing of `latin' hinter.
4134
4135 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
4136 zone types.
4137 (af_latin_metrics_scale_dim): Report scaling changes due to x height
4138 alignment.
4139 Report scaled stroke width and blue zone values.
4140
Dave Arnolde845a852013-10-03 23:04:29 +020041412013-10-03 Dave Arnold <darnold@adobe.com>
4142
4143 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
4144
Werner Lemberg2c56f2a2013-10-07 22:01:00 +02004145 Note that the old code avoided using a region of the piecewise
4146 linear function where the slope was zero. The recovery was to use a
4147 different section of the function, which produced a different,
4148 incorrect amount of darkening.
4149
Darrell Bellert01af71d2013-10-02 22:04:07 +020041502013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
4151
4152 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
4153
Dave Arnold0b330452013-10-02 11:04:06 +020041542013-10-02 Dave Arnold <darnold@adobe.com>
4155
4156 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
4157
4158 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
4159 is to use a previous darkening amount when producing an unhinted,
4160 unscaled outline. This can cause autohint samples in ftgrid and
4161 ftview to be based on darkened CFF outlines instead of unhinted,
4162 undarkened ones.
4163
Dave Arnold3a2cb0f2013-09-29 16:17:02 +020041642013-09-29 Dave Arnold <darnold@adobe.com>
4165
4166 Fix Savannah bug #39295.
4167
4168 The bug was caused by switching to the initial hintmap (the one in
4169 effect when `moveto' executes) just before drawing the final element
4170 in the charstring. This ensured that the path was closed (in both
4171 Character Space and Device Space). But if the final element was a
4172 curve and if the final hintmap was different enough from the initial
4173 one, then the curve was visibly distorted.
4174
4175 The first part of the fix is to draw the final curve using the final
4176 hintmap as specified by the charstring. This corrects the
4177 distortion but does not ensure closing in Device Space. It may
4178 require the rasterizer to automatically generate an extra closing
4179 line. Depending on the hintmap differences, this line could be from
4180 zero to a couple pixels in length.
4181
4182 The second part of the fix covers the case where the charstring
4183 subpath is closed with an explicit line. We now modify that line's
4184 end point to avoid the distortion.
4185
4186 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
4187 the change are:
4188
4189 25ppem S (98)
4190 24ppem eight (52)
4191 25.5ppem p (85)
4192
4193 Curves at the *end* of a subpath are no longer distorted. However,
4194 some of these glyphs have bad hint substitutions in the middle of a
4195 subpath, and these are not affected.
4196
4197 The patch has been tested with a set of 106 fonts that shipped with
4198 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
4199 Google Fonts. There are 1.5 million glyphs, of which some 20k are
4200 changed with the fix. A sampling of a few hundred of these changes
4201 have been examined more closely, and the changes look good (or at
4202 least acceptable).
4203
4204 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
4205 to indicate that we synthesize a closepath line.
4206
4207 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
4208 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
4209 `lineto' operator) and adjust hint zone.
4210 For synthesized closing lines, use end point in first hint zone.
4211 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
4212 particular, shift the detection of zero-length lines from character
4213 space to device space.
4214 (cf2_glyphpath_closeOpenPath): Remove assertion.
4215 Updated.
4216
Werner Lembergb75a8b82013-09-25 09:46:36 +020042172013-09-25 Werner Lemberg <wl@gnu.org>
4218
4219 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
4220
suzuki toshiyaac0f4452013-09-25 10:57:17 +090042212013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4222
4223 [bdf, pcf] Refuse non-zero face_index.
Werner Lemberg964317e2013-09-25 09:22:40 +02004224
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004225 Suggested by Akira Tagoh, see
4226
4227 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
4228
Werner Lemberg964317e2013-09-25 09:22:40 +02004229 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
4230 error if the font could be opened but non-zero `face_index' is
4231 given.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004232 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
4233
4234 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
Werner Lemberg964317e2013-09-25 09:22:40 +02004235 macro for `face_index' because it is validated later.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004236
Werner Lemberg4de77872013-09-23 22:10:08 +020042372013-09-23 Werner Lemberg <wl@gnu.org>
4238
4239 Fix Savannah bug #40090.
4240
4241 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
4242 306f8c5d (from 2013-08-25) affecting this function.
4243
Werner Lemberg5a4c5a52013-09-22 22:37:26 +020042442013-09-22 Werner Lemberg <wl@gnu.org>
4245
4246 [autofit] Disunify Cyrillic and Greek handling from Latin.
4247
4248 * src/autofit/afscript.h: Add Cyrillic and Greek.
4249
4250 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
4251 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
4252 (AF_BLUE_STRINGSET_LATN): Fix typo.
4253 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4254
4255 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
4256 arrays.
4257 (af_grek_script_class, af_cyrl_script_class): New scripts.
4258 * src/autofit/aflatin.h: Updated.
4259
Werner Lemberg2cca9662013-09-20 07:23:34 +020042602013-09-20 Werner Lemberg <wl@gnu.org>
4261
4262 * docs/CHANGES: Updated.
4263
Behdad Esfahbod31e726d2013-09-20 07:20:53 +020042642013-09-20 Behdad Esfahbod <behdad@behdad.org>
4265
4266 Fix vertical size of emboldened glyphs.
4267
4268 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
4269
4270 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
4271 also.
4272
Alexei Podtelezhnikov52381c12013-09-11 23:25:56 -040042732013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
4274
4275 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
4276 algorithm description.
4277
Werner Lemberg3f542492013-09-11 23:08:31 +020042782013-09-11 Werner Lemberg <wl@gnu.org>
4279
4280 [autofit] Improve Hebrew rendering.
4281
4282 This change introduces a new blue zone property
4283 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
4284 top segments.
4285
4286 * src/autofit/afblue.dat: Fix Hebrew blue strings.
4287 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
4288
4289 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
4290
4291 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
4292
4293 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
4294 `AF_LATIN_IS_LONG_BLUE'.
4295
4296 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
4297
Werner Lemberg85a7fdf2013-08-29 21:03:05 +020042982013-08-28 Behdad Esfahbod <behdad@google.com>
4299
4300 [sfnt] Fix frame access while reading WOFF table directory.
4301
4302 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
4303 while reading the directory entries for the whole loop.
4304
43052013-08-29 Werner Lemberg <wl@gnu.org>
Werner Lembergd689d1c2013-08-29 17:53:40 +02004306 Behdad Esfahbod <behdad@google.com>
4307
4308 Implement support for WOFF containers.
4309
4310 We simply synthesize a SFNT from the WOFF, create a memory stream
4311 for the new data, and load the SFNT as usual.
4312
4313 Does NOT add any API to access WOFF metadata or private blocks.
4314
4315 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
4316 WOFF_TableRec): New structures.
4317
4318 * include/freetype/tttags.h (TTAG_wOFF): New macro.
4319
4320 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
4321 `open_face'.
4322
4323 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
4324 `FT_GZIP_H'.
4325 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
4326 writing to a stream.
4327 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
4328 (sfnt_open_font): Handle `TTAG_wOFF'.
4329 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
4330
4331 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
4332 `sfnt->init_face'.
4333
4334 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
4335 argument so that a changed stream survives.
4336 Update callers.
4337
43382013-08-28 Werner Lemberg <wl@gnu.org>
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004339
Werner Lembergdc240522013-08-29 17:53:24 +02004340 [gzip] New function `FT_Gzip_Uncompress'.
4341
4342 This is modeled after zlib's `uncompress' function. We need this
4343 for WOFF support.
4344
4345 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
4346 New function.
4347
4348 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
4349
43502013-08-28 Werner Lemberg <wl@gnu.org>
4351
Werner Lemberg5195ecd2013-08-28 17:41:21 +02004352 [autofit] Fix `make multi' compilation.
4353
4354 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
4355 `afblue.h' but `aftypes.h'.
4356 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
4357
43582013-08-28 Werner Lemberg <wl@gnu.org>
4359
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004360 [autofit] Fix C++ compilation.
4361
4362 * src/autofit/afglobal.c (af_face_globals_get_metrics),
4363 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
4364 (af_deva_script_class): Use proper casts.
4365
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +020043662013-08-27 Behdad Esfahbod <behdad@google.com>
4367
Behdad Esfahbodc799dd62013-08-27 21:46:03 +02004368 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
4369
43702013-08-27 Behdad Esfahbod <behdad@google.com>
4371
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +02004372 FT_Open_Face: Improve external stream handling.
4373
4374 If the font's `clazz->init_face' function wants to swap to new
4375 stream, handling of whether original stream was external could
4376 result to either memory leak or double free. Mark externality into
4377 face flags before calling `init_face' such that the clazz can handle
4378 external streams properly.
4379
4380 * src/base/ftobjs.c (FT_Open_Face): Move code to set
4381 FT_FACE_FLAG_EXTERNAL_STREAM to...
4382 (open_face): This function.
4383
Werner Lemberg5e53db22013-08-27 18:37:39 +020043842013-08-27 Werner Lemberg <wl@gnu.org>
4385
Werner Lembergbcd8c0b2013-08-27 21:36:03 +02004386 Remove `FT_SqrtFixed' function.
4387
4388 It's no longer used.
4389
4390 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
4391
43922013-08-27 Werner Lemberg <wl@gnu.org>
4393
Werner Lemberg5e53db22013-08-27 18:37:39 +02004394 [autofit] While tracing, report script names instead of ID values.
4395
4396 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
4397 New array.
4398 * src/autofit/afglobal.h: Updated.
4399
4400 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
4401 af_cjk_hint_edges): Use `af_script_names'.
4402 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4403 af_latin_hint_edges): Ditto.
4404
Werner Lemberg92f5a042013-08-26 09:22:27 +020044052013-08-26 Werner Lemberg <wl@gnu.org>
4406
Werner Lemberg278f64b2013-08-26 20:20:03 +02004407 [autofit] Report used script while hinting a glyph.
4408
4409 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
4410 (af_latin_hint_edges): Implement it.
4411
44122013-08-26 Werner Lemberg <wl@gnu.org>
4413
Werner Lemberg371f5c32013-08-26 20:11:24 +02004414 [autofit] Add support for Hebrew script.
4415
4416 * src/autofit/afblue.dat: Add blue strings for Hebrew.
4417 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4418
4419 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
4420 (af_hebr_script_class): New script.
4421 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
4422
44232013-08-26 Werner Lemberg <wl@gnu.org>
4424
Werner Lemberg098121d2013-08-26 18:54:05 +02004425 [autofit] Improve tracing messages.
4426
4427 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
4428 ID in tracing message.
4429 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
4430 loop.
4431 Improve tracing messages.
4432 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
4433 `num_actions' to count hinting actions.
4434 Improve tracing messages.
4435
4436 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
4437 script ID in tracing message.
4438 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
4439 messages.
4440
44412013-08-26 Werner Lemberg <wl@gnu.org>
4442
Werner Lembergffee64a2013-08-26 12:55:48 +02004443 Better tracing of loaded glyphs.
4444
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004445 Previously, the loading of a glyph was traced at level 4, if at all.
Werner Lembergffee64a2013-08-26 12:55:48 +02004446 With this change, all font loading routines emit a tracing message
4447 at level 1, making it easier to select tracing output (for example
4448 using F2_DEBUG="any:1 afhints:7 aflatin:7").
4449
4450 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
4451 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
4452 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
4453 messages.
4454 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
4455 message.
4456 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
4457 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
4458 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
4459 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
4460 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
4461 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
4462
44632013-08-26 Werner Lemberg <wl@gnu.org>
4464
Werner Lemberg33655a92013-08-26 09:58:50 +02004465 [autofit] Fix script selection.
4466
4467 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
4468 `AF_SCRIPT_DFLT', not value 0.
4469 Simplify code.
4470
4471 * src/autofit/afscript.h: Sort by script name.
4472
44732013-08-26 Werner Lemberg <wl@gnu.org>
4474
Werner Lemberg92f5a042013-08-26 09:22:27 +02004475 [autofit] Make `dummy' hinter work as expected.
4476
4477 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
4478 information.
4479 (af_dummy_hints_apply): Scale the glyphs.
4480
Werner Lemberg8b8be782013-08-25 08:01:41 +020044812013-08-25 Werner Lemberg <wl@gnu.org>
4482
Werner Lembergc1eb4452013-08-25 19:47:26 +02004483 [autofit] Make `cjk' module use blue stringsets.
4484
4485 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
4486 (af_cjk_hani_blue_chars): Removed.
4487 (AF_CJK_BLUE_TYPE_*): Removed.
4488 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
4489 AF_BLUE_STRING_MAX_LEN.
4490 Change loops to use offsets (in file `afblue.h') into the new arrays
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004491 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
Werner Lembergc1eb4452013-08-25 19:47:26 +02004492 Instead of three dimensions (as used in the old blue string array)
4493 we now use properties to do the same, saving one loop nesting level.
4494
4495 * src/autofit/afcjk.h: Remove old enumeration values superseded by
4496 the new data in `afblue.h'.
4497 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
4498 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
4499 `af_cjk_metrics_init_blues'.
4500 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
4501 (AF_CJK_BLUE_IS_TOP): Renamed to...
4502 (AF_CJK_BLUE_TOP): This.
4503 (AF_CJK_MAX_BLUES): Remove.
4504 (AF_CJKAxisRec): Updated.
4505
45062013-08-25 Werner Lemberg <wl@gnu.org>
4507
Werner Lemberg5c4a23a2013-08-25 19:29:07 +02004508 [autofit] Typo.
4509
4510 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
4511 cast.
4512
45132013-08-25 Werner Lemberg <wl@gnu.org>
4514
Werner Lemberg306f8c52013-08-25 13:07:08 +02004515 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
4516
4517 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
4518 messages.
4519 (af_cjk_metrics_init_blues): Don't pass blue string array as
4520 argument but use the global array directly.
4521 Use `outline' directly.
4522 Update and add tracing messages.
4523 (af_cjk_metrics_init): Simplify code.
4524 (af_cjk_metrics_scale_dim): Improve tracing message.
4525 (af_cjk_metrics_scale): Synchronize.
4526
4527 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4528 af_latin_metrics_init_blues): Improve and add tracing messages.
4529
45302013-08-25 Werner Lemberg <wl@gnu.org>
4531
Werner Lemberg0975d682013-08-25 08:37:47 +02004532 [autofit] Make `latin' module use blue stringsets.
4533
4534 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
4535 (af_latin_blue_chars): Removed.
4536 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
4537 with AF_BLUE_STRING_MAX_LEN.
4538 Change loops to use offsets (in file `afblue.h') into the new arrays
4539 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
4540 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
4541
4542 * src/autofit/aflatin.h: Remove old enumeration values superseded by
4543 the new data in `afblue.h'.
4544 (AF_LATIN_IS_TOP_BLUE): Updated definition.
4545 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
4546 (AF_LATIN_MAX_BLUES): Remove.
4547 (AF_LatinAxisRec): Updated.
4548
45492013-08-25 Werner Lemberg <wl@gnu.org>
4550
Werner Lembergdb3e5b92013-08-25 08:23:22 +02004551 [autofit] Add blue stringsets.
4552
4553 * src/autofit/aftypes.h: Include `afblue.h'.
4554 (AF_ScriptClassRec): Add `blue_stringset' field.
4555 (AF_DEFINE_SCRIPT_CLASS): Updated.
4556
4557 * src/autofit/autofit.c: Include `afblue.c'.
4558
4559 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
4560 (af_dflt_script_class), src/autofit/afindic.c
4561 (af_deva_script_class), src/autofit/aflatin.c
4562 (af_latn_script_class), src/autofit/aflatin2.c
4563 (af_ltn2_script_class): Updated.
4564
4565 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
4566
45672013-08-25 Werner Lemberg <wl@gnu.org>
4568
Werner Lemberg8b8be782013-08-25 08:01:41 +02004569 [autofit] Introduce data file for blue strings.
4570
4571 The idea is to have a central file which gets processed by a Perl
4572 script to create proper `.c' and `.h' files using templates. There
4573 are two other reasons to do that:
4574
4575 . The data file should be easily readable. We use UTF-8 encoding
4576 which then gets converted to single bytes.
4577
4578 . Since the number of supported scripts will increase soon, the
4579 current usage of blue string arrays is a waste of space. Using
4580 the Perl script it is possible to imitate jagged arrays,
4581 defining enumeration constants as offsets into the arrays.
4582
4583 This commit only adds files without changing any functionality.
4584
4585 * src/autofit/afblue.dat: New data file.
4586 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
4587
4588 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
4589 for...
4590 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
4591 To avoid a dependency on Perl, we add them too.
4592
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -040045932013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
4594
Werner Lemberg71c0ad62013-08-27 21:30:09 +02004595 [base] Enable new algorithm for `BBox_Cubic_Check'.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04004596
Werner Lemberg71c0ad62013-08-27 21:30:09 +02004597 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
4598 the old one.
4599 Improve comments.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04004600
Werner Lemberg6bfa2632013-08-18 18:34:05 +020046012013-08-18 Werner Lemberg <wl@gnu.org>
4602
Werner Lemberg4af44442013-08-18 18:46:30 +02004603 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
4604
46052013-08-18 Werner Lemberg <wl@gnu.org>
4606
Werner Lemberg6bfa2632013-08-18 18:34:05 +02004607 Fix Savannah bug #39804.
4608
4609 * builds/unix/configure.raw (LIBPNG): Define and export.
4610 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
4611 libpng.
4612
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -040046132013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
4614
4615 [base] Clean up BBox_Conic_Check.
4616
4617 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
4618 extremum at the segment ends, which are already within the bbox.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004619 Slightly modify calculations.
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -04004620
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -040046212013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
4622
4623 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
4624
4625 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004626 accuracy and avoid overflows.
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04004627
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -040046282013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
4629
4630 [base] Refactor experimental (disabled) BBox_Cubic_Check.
4631
4632 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04004633 as the mirror image of the maximum search implemented here...
4634 (update_max): New function.
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -04004635
John Tytgat9bcfab82013-08-06 08:55:19 +020046362013-08-06 John Tytgat <John.Tytgat@esko.com>
4637
4638 Fix Savannah bug #39702.
4639
4640 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
4641 != 0'; this stronger test is mandated by the CFF specification.
4642 Fix test for INDEX structures which have one or more empty entries
4643 at the end.
4644
Werner Lembergcc25e3a2013-08-05 08:46:15 +020046452013-08-05 Werner Lemberg <wl@gnu.org>
4646
Werner Lemberga32682f2013-08-06 00:21:46 +02004647 Fix gcc pragmas, part 2.
4648
4649 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
4650 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
4651 introduced with gcc version 4.6.
4652
46532013-08-05 Werner Lemberg <wl@gnu.org>
4654
Werner Lemberg69e524d2013-08-05 23:38:32 +02004655 Fix gcc pragmas.
4656
4657 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
4658 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
4659 pragmas within a function body.
4660
46612013-08-05 Werner Lemberg <wl@gnu.org>
4662
Werner Lemberg9e6de362013-08-05 16:37:21 +02004663 Fix Savannah bug #39700.
4664
4665 * builds/unix/ftconfig.h: Synchronize with
4666 `include/freetype/config/ftconfig.h'.
4667
4668 * builds/vms/ftconfig.h: Ditto.
4669 Make the differences to the master `ftconfig.h' file as small as
4670 possible for easier maintainance.
4671
46722013-08-05 Werner Lemberg <wl@gnu.org>
4673
Werner Lembergcc25e3a2013-08-05 08:46:15 +02004674 [autofit] Improve handling of `near' points.
4675
4676 Points which are very near to each other are now marked as such.
4677 The `weak' flag is then computed by using the `in' vector of the
4678 first and the `out' vector of the last point of a group of near
4679 points.
4680
4681 For example, this fixes the rendering of glyph `Oslash' in
4682 `Roboto-Thin.ttf'.
4683
4684 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
4685
4686 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
4687 the heuristic value `near_limit' to decide whether the current point
4688 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
4689 Store good `in' vector (of last non-near point) in
4690 `last_good_in_{x,y}' and use it as an argument to
4691 `ft_corner_is_flat' if necessary.
4692
Werner Lemberg74a9b672013-08-02 14:53:32 +020046932013-08-02 Werner Lemberg <wl@gnu.org>
4694
Werner Lemberg0d28a7d2013-08-02 22:59:43 +02004695 * include/freetype/ftcffdrv.h: Improve documentation.
4696 This is based on blog entries from David Lemon and Dave Arnold (both
4697 from Adobe) with kind permission. Dave also helped in
4698 proof-reading.
4699
47002013-08-02 Werner Lemberg <wl@gnu.org>
4701
Werner Lemberg456cc442013-08-02 20:25:21 +02004702 [autofit] Move declaration of scripts into separate file.
4703
4704 This has the benefit that we don't need to duplicate the data at
4705 different places.
4706
4707 * src/autofit/afscript.h: New file.
4708
4709 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
4710 the enumeration values.
4711
4712 * src/autofit/afglobal.c: Include `afscript.h' to get the script
4713 specific header files.
4714 (af_script_classes): Include `afscript.h' to fill this array.
4715
4716 * src/autofit/afpic.c: Include `afscript.h' to get the script
4717 specific header files.
4718 (autofit_module_class_pic_init): Include `afscript.h' for
4719 initialization.
4720 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
4721 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
4722
4723 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
4724
47252013-08-02 Werner Lemberg <wl@gnu.org>
4726
Werner Lemberg773601d2013-08-02 19:51:17 +02004727 [autofit] Move declaration of writing systems into separate file.
4728
4729 This has the benefit that we don't need to duplicate the data at
4730 different places.
4731
4732 * src/autofit/afwrtsys.h: New file.
4733
4734 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
4735 define the enumeration values.
4736
4737 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
4738 system specific header files.
4739 Include `afpic.h'.
4740 (af_writing_system_classes): Include `afwrtsys.h' to fill this
4741 array.
4742
4743 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
4744 system specific header files.
4745 (autofit_module_class_pic_init): Include `afwrtsys.h' for
4746 initialization.
4747 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
4748 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
4749 `AF_WRITING_SYSTEM_MAX' instead.
4750
47512013-08-02 Werner Lemberg <wl@gnu.org>
4752
Werner Lemberg74a9b672013-08-02 14:53:32 +02004753 [sfnt] Fix compilation with g++.
4754
4755 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
4756 cast.
4757 (Load_SBit_Png): Pacify compiler.
4758
Werner Lemberg89a529f2013-08-02 14:50:23 +020047592013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4760 Werner Lemberg <wl@gnu.org>
4761
4762 [autofit] Fix `make multi'.
4763
4764 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
4765 FT_LOCAL_ARRAY_DEF): New macros.
4766
4767 * src/autofit/afglobal.c (af_writing_system_classes,
4768 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
4769 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
4770 `af_script_classes'.
4771 * src/autofit/afloader.c: Include `afpic.h'.
4772
Werner Lemberge8ed2d62013-08-01 12:20:20 +020047732013-08-01 Werner Lemberg <wl@gnu.org>
4774
4775 Another round of cppcheck nitpicks.
4776
4777 The call was (from the top-level of the FreeType tree):
4778
4779 cppcheck --force \
4780 --enable=all \
4781 -I /usr/include \
4782 -I /usr/local/include \
4783 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
4784 -I include \
4785 -I include/freetype \
4786 -I include/freetype/config \
4787 -I include/freetype/internal \
4788 -DFT2_BUILD_LIBRARY \
4789 . &> cppcheck.log
4790
4791 using cppcheck git commit f7e93f99.
4792
4793 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
4794 macro).
4795
4796 */* Improve variable scopes.
4797 */* Remove redundant initializations which get overwritten.
4798
4799 * src/gxvalid/*: Comment out redundant code or guard it with
4800 FT_DEBUG_LEVEL_TRACE.
4801
Werner Lemberg5d6a3602013-07-30 23:17:04 +020048022013-07-30 Werner Lemberg <wl@gnu.org>
4803
Werner Lemberg72f5ff52013-07-31 22:49:29 +02004804 [autofit] Introduce `writing systems'.
4805
4806 This patch adds a new top level to the auto-hinter's script class
4807 hierarchy. It defines `writing systems' which can contain multiple
4808 scripts.
4809
4810 For example, the `latin' writing system (in file `aflatin.c') is
4811 able to support scripts like Latin, Cyrillic, Armenian, etc., which
4812 can be handled similarly.
4813
4814 Scripts are now named using four-letter OpenType tags.
4815
4816 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
4817 to...
4818 (AF_WritingSystemClassRec): This new structure. It holds pointers
4819 to functions which can be shared among related scripts.
4820 (AF_WritingSystem): New enumeration.
4821 (AF_Script): Revised values using four-letter tags.
4822 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
4823 (AF_DEFINE_SCRIPT_CLASS): Updated.
4824
4825 * src/autofit/afglobal.c (af_writing_system_classes): New global,
4826 constant array.
4827 (af_script_classes): Updated.
4828 (af_face_globals_free): Updated.
4829 Remove assertion.
4830 (af_face_globals_get_metrics): Updated.
4831
4832 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
4833 [!AF_CONFIG_OPTION_CJK]: Handle this case.
4834
4835 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4836 Updated.
4837
4838 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
4839 initialize structures for both writing systems and scripts.
4840 * src/autofit/afpic.h: Updated.
4841 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
4842
4843 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
4844 system.
4845 (af_cjk_uniranges): Renamed to...
4846 (af_hani_uniranges): This.
4847 (af_cjk_script_class): Reduced and renamed to...
4848 (af_hani_script_class): This.
4849 * src/autofit/afcjk.h: Updated.
4850
4851 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
4852 system.
4853 (af_dummy_script_class): Reduced and renamed to...
4854 (af_dflt_script_class): This.
4855 * src/autofit/afdummy.h: Updated.
4856
4857 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
4858 system.
4859 (af_indic_uniranges): Renamed to...
4860 (af_deva_uniranges): This.
4861 (af_indic_script_class): Reduced and renamed to...
4862 (af_deva_script_class): This.
4863 * src/autofit/afcjk.h: Updated.
4864
4865 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
4866 system.
4867 (af_latin_uniranges): Renamed to...
4868 (af_latn_uniranges): This.
4869 (af_latin_script_class): Reduced and renamed to...
4870 (af_latn_script_class): This.
4871 * src/autofit/aflatin.h: Updated.
4872
4873 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
4874 writing system.
4875 (af_latin2_uniranges): Renamed to...
4876 (af_ltn2_uniranges): This.
4877 Synchronize ranges with `latin'.
4878 (af_latin2_script_class): Reduced and renamed to...
4879 (af_ltn2_script_class): This.
4880 * src/autofit/aflatin2.h: Updated.
4881
48822013-07-30 Werner Lemberg <wl@gnu.org>
4883
Werner Lemberg5d6a3602013-07-30 23:17:04 +02004884 [autofit] Variable renaming.
4885
4886 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
4887 s/clazz/script_class/.
4888 Update all users.
4889
suzuki toshiya2b29ed62013-07-30 13:55:29 +090048902013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4891
4892 Ignore libpng-config under cross-building configuration,
4893 because it will return the flags for the hosting environment.
4894
4895 * builds/unix/configure.raw: Ignore libpng-config when
4896 `cross_compiling' == yes.
4897
suzuki toshiyaf2e7f1e2013-07-30 13:32:57 +090048982013-07-30 Behdad Esfahbod <behdad@google.com>
4899
4900 Prevent division by zero by a transparent color.
4901
4902 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
4903 Return 0 immediately, when alpha channel is zero.
4904
Behdad Esfahbod21c32b02013-07-25 21:53:18 +020049052013-07-25 Behdad Esfahbod <behdad@google.com>
4906
4907 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
4908
4909 Also disambiguate Google's color bitmap tables.
4910
4911 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
4912 New macros.
4913
4914 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
4915 TT_SBIT_TABLE_TYPE_CBLC.
4916
4917 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
4918
4919 * src/sfnt/ttsbit.c (tt_face_load_sbit,
4920 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
4921 TT_SBIT_TABLE_TYPE_CBLC.
4922
suzuki toshiyab4725cb2013-07-24 14:25:39 +090049232013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4924
4925 [sfnt] Fix for `make multi' target.
4926
4927 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
4928
Werner Lemberg6a7df622013-07-20 10:48:37 +020049292013-07-20 Werner Lemberg <wl@gnu.org>
4930
4931 * docs/INSTALL.GNU: Updated.
4932
Behdad Esfahbodff269522013-07-20 08:02:39 +020049332013-07-20 Behdad Esfahbod <behdad@google.com>
4934
4935 [sfnt] Fix `sbix' table version handling.
4936
4937 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
4938 USHORT version numbers are to be considered as `minor'.
4939
Werner Lemberg05c14212013-07-19 23:11:23 +020049402013-07-19 Werner Lemberg <wl@gnu.org>
4941
4942 [autofit] Fix segment classification for blue zones.
4943
4944 The old code (essentially unchanged since the very beginning)
4945 incorrectly handled this configuration
4946
4947 x -o- x
4948 / \
4949 / \
4950 / \
4951 o o
4952
4953 as flat and this
4954
4955 o o
4956 / /
4957 x| x|
4958 | |
4959 o---------------o
4960
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004961 as round. (`o' and `x' are on and off points, respectively).
Werner Lemberg05c14212013-07-19 23:11:23 +02004962
4963 This is a major change which should improve the rendering results
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004964 enormously for many TrueType fonts, especially in the range approx.
Werner Lemberg05c14212013-07-19 23:11:23 +02004965 20-40ppem, fixing the appearance of many overshoots.
4966
4967 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
4968 first and last points of the segment, not the points right before
4969 and after.
4970
49712013-07-19 Behdad Esfahbod <behdad@google.com>
Werner Lemberg01705392013-07-18 13:13:12 +02004972
Behdad Esfahbod778a7e62013-07-19 14:28:28 +02004973 [sfnt] `sbix' fix-ups.
4974
4975 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
4976 are rendered scaled and then the `glyf' outline rendered on top. We
4977 don't support that yet, so just ignore the `glyf' outline and
4978 advertise it as a bitmap-only font.
4979
4980 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
4981 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
4982 (tt_face_load_sbix_image): Typo.
4983
49842013-07-18 Behdad Esfahbod <behdad@google.com>
4985
Werner Lemberg01705392013-07-18 13:13:12 +02004986 [sfnt] Add support for Apple's `sbix' color bitmap table.
4987
4988 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
4989 fields to FT_Short and FT_UShort, respectively.
4990 (TT_SBitTableType): New enumeration.
4991 (TT_FaceRec): Add `sbit_table_type' field.
4992
4993 * include/freetype/tttags.h (TTAG_sbix): New macro.
4994
4995 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
4996 FT_GlyphSlot argument instead FT_Bitmap.
4997 Add flag to control map and metrics handling.
4998 Update all users.
4999
5000 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
5001 (tt_face_load_eblc): Renamed to...
5002 (tt_face_load_sbit): This.
5003 Handlic `sbix' bitmaps.
5004 (tt_face_free_eblc): Renamed to...
5005 (tt_face_load_sbit): This.
5006 Updated.
5007 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
5008 (tt_face_load_sbix_image): New function.
5009 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
5010 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5011 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5012 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
5013 and handle load flags.
5014 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
5015 handle formats 17-19.
5016 Move color to grayscale conversion to...
5017 (tt_face_load_sbit_image): Here.
5018 Handle `sbix' bitmaps.
5019
5020 * src/sfnt/pngshim.h: Updated.
5021 * src/sfnt/ttsbit.h: Updated.
5022 * src/sfnt/sfdriver.c: Updated.
5023
Werner Lemberg274207e2013-07-18 12:38:57 +020050242013-07-18 Werner Lemberg <wl@gnu.org>
5025
5026 [sfnt] Ignore invalid magic number in `head' or `bhed'.
5027
5028 Other font engines seem to ignore it also. Problem reported by
5029 Hin-Tak Leung <htl10@users.sourceforge.net>.
5030
5031 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
5032 we have an invalid magic number.
5033
Werner Lemberg9a7951d2013-07-16 15:25:24 +020050342013-07-16 Werner Lemberg <wl@gnu.org>
5035
5036 [smooth] Fix segfault caused by previous commit.
5037
5038 * src/smooth/ftgrays.c (gray_set_cell): Always compute
5039 `ras.invalid'.
5040
David Turnera5f33ee2013-07-16 12:40:03 +020050412013-07-16 David Turner <digit@google.com>
5042
David Turner89929ec2013-07-16 13:36:07 +02005043 [smooth] Improve performance.
5044
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005045 Provide a work-around for an ARM-specific performance bug in GCC.
David Turner89929ec2013-07-16 13:36:07 +02005046 This speeds up the rasterizer by more than 5%.
5047
5048 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
5049 also improves performance on other platforms by a tiny bit (<1%).
5050
5051 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
5052 Use it where appropriate.
5053
5054 (gray_record_cell, gray_set_cell, gray_move_to,
5055 gray_convert_glyph_inner): Streamline condition handling.
5056
50572013-07-16 David Turner <digit@google.com>
5058
David Turnerf66d48e2013-07-16 13:18:00 +02005059 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
5060
5061 This patch provides slightly optimized versions for ARM, x86, and
5062 x86_64 CPUs if built with GCC.
5063
5064 Also remove some dead code.
5065
5066 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
5067 TT_DotFix14_long_long): New functions.
5068
50692013-07-16 David Turner <digit@google.com>
5070
David Turnerb2890882013-07-16 12:52:18 +02005071 Optimize FT_MulFix for x86_64 GCC builds.
5072
5073 This patch provides an optimized `FT_MulFix' implementation for
5074 x86_64 machines when FreeType is built with GCC, or compatible
5075 compilers like Clang.
5076
5077 Example:
5078 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
5079
5080 Before:
5081
5082 Load 4.863 us/op
5083 Load_Advances (Normal) 4.816 us/op
5084 Load_Advances (Fast) 0.028 us/op
5085 Render 2.753 us/op
5086 Get_Glyph 0.463 us/op
5087 Get_CBox 0.077 us/op
5088 Get_Char_Index 0.023 us/op
5089 Iterate CMap 13.898 us/op
5090 New_Face 12.368 us/op
5091 Embolden 0.028 us/op
5092 Get_BBox 0.302 us/op
5093
5094 After:
5095
5096 Load 4.617 us/op
5097 Load_Advances (Normal) 4.645 us/op
5098 Load_Advances (Fast) 0.027 us/op
5099 Render 2.789 us/op
5100 Get_Glyph 0.460 us/op
5101 Get_CBox 0.077 us/op
5102 Get_Char_Index 0.024 us/op
5103 Iterate CMap 13.403 us/op
5104 New_Face 12.278 us/op
5105 Embolden 0.028 us/op
5106 Get_BBox 0.301 us/op
5107
5108 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5109 (FT_MulFix_x86_64): New function.
5110
51112013-07-16 David Turner <digit@google.com>
5112
David Turnera5f33ee2013-07-16 12:40:03 +02005113 Speed up ARMv7 support.
5114
5115 When building for ARMv7 with thumb2 instructions, the optimized
5116 `FT_MulFix_arm' assembly routine was not being used.
5117
5118 The reason for this is in the `ftconfig.h' header, namely:
5119
5120 - The assembly routine uses the `smull' instruction which is not
5121 available when generating Thumb-1 machine code. It is available
5122 in Thumb-2 mode, though.
5123
5124 - The header was written a long time ago before Thumb-2 became
5125 widely popular (e.g. with Android). So it simply doesn't use the
5126 assembly routine if the `__thumb__' built-in macro is defined.
5127
5128 - When compiling in Thumb-2 mode, the compiler will define both
5129 `__thumb__' and `__thumb2__'.
5130
5131 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
5132 assembly routine is only avoided when generating Thumb-1 code.
5133
5134 Given that this is performance-sensitive function, this improves
5135 `ftbench' as follows on a Galaxy Nexus:
5136
5137 Before (us/op) After (us/op)
5138
5139 - loading Arial.ttf glyphs at 14 ppem [1]
5140
5141 Load 34.285 33.098
5142
5143 - same operation with the light auto-hinter [2]
5144
5145 Load 31.317 29.590
5146
5147 - same operation without hinting [3]
5148
5149 Load 6.143 5.376
5150
5151 - loading Arial.ttf advances at 14 ppem [4]
5152
5153 Load_Advances (normal) 34.216 33.016
5154 Load_Advances (fast) 0.176 0.176
5155
5156 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
5157 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
5158 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
5159 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
5160
5161 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5162 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
5163
Werner Lemberge12fc772013-06-28 07:57:32 +020051642013-06-28 Werner Lemberg <wl@gnu.org>
5165
5166 * docs/CHANGES: Updated.
5167
Werner Lemberg680c1d42013-06-27 17:21:59 +020051682013-06-27 Werner Lemberg <wl@gnu.org>
5169
5170 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
5171
Werner Lembergc7cc9eb2013-06-25 07:24:02 +020051722013-06-25 Werner Lemberg <wl@gnu.org>
5173
Werner Lembergb8850fc2013-06-26 12:22:10 +02005174 [cff] Add darkening limit to `darkening-parameters'.
5175
5176 * src/cff/cffdrivr.c (cff_property_set): Add check.
5177
51782013-06-25 Werner Lemberg <wl@gnu.org>
5179
Werner Lemberg89ca1fd2013-06-25 23:28:02 +02005180 [cff] Add `darkening-parameters' property.
5181
5182 * include/freetype/ftcffdrv.h: Document it.
5183
5184 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
5185 `darkening-parameters' property.
5186
5187 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
5188
5189 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
5190 argument and use it.
5191 Update all callers.
5192
5193 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
5194 `darken_params' values.
5195
5196 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
5197
5198 * src/cff/cffobjs.c (cff_driver_init): Set default values for
5199 `darken_params'.
5200
52012013-06-25 Werner Lemberg <wl@gnu.org>
5202
Werner Lembergfad93262013-06-25 10:41:37 +02005203 [docmaker] Code shuffling.
5204
5205 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
5206 * src/tools/docmaker/sources.py: ... to this file.
5207
52082013-06-25 Werner Lemberg <wl@gnu.org>
5209
Werner Lemberg8bdc4072013-06-25 10:20:53 +02005210 [docmaker] Remove unused functions.
5211
5212 * src/tools/docmaker/content.py (DocMarkup.get_start,
5213 DocBlock.get_markup_name): Removed.
5214 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
5215 HtmlFormatter.make_html_words): Removed.
5216
52172013-06-25 Werner Lemberg <wl@gnu.org>
5218
Werner Lembergffb8b472013-06-25 09:09:30 +02005219 * builds/freetype.mk (dll): Remove target.
5220
5221 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
5222
52232013-06-25 Werner Lemberg <wl@gnu.org>
5224
Werner Lembergc7cc9eb2013-06-25 07:24:02 +02005225 [docmaker] Recognise URLs.
5226
5227 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
5228 (make_html_para): Use it.
5229
Werner Lemberg25b7da52013-06-19 10:23:36 +020052302013-06-19 Werner Lemberg <wl@gnu.org>
5231
Werner Lembergfe4f5712013-06-19 23:27:47 +02005232 * Version 2.5.0.1 released.
5233 ===========================
5234
5235
5236 Tag sources with `VER-2-5-0-1'.
5237
5238 * include/freetype/config/ftoption.h: Undefine
5239 CFF_CONFIG_OPTION_OLD_ENGINE.
5240 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
5241
52422013-06-19 Werner Lemberg <wl@gnu.org>
5243
Werner Lemberg609f0ca2013-06-19 14:41:47 +02005244 * builds/unix/install.mk (install): Don't create `cache' directory.
5245
5246 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
5247
52482013-06-19 Werner Lemberg <wl@gnu.org>
5249
Werner Lemberg25b7da52013-06-19 10:23:36 +02005250 * Version 2.5.0 released.
5251 =========================
5252
5253
5254 Tag sources with `VER-2-5-0'.
5255
5256 * docs/VERSION.DLL: Update documentation and bump version number to
5257 2.5.0.
5258
5259 * README, Jamfile (RefDoc),
5260 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
5261 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
5262 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
5263 builds/win32/visualc/freetype.dsp,
5264 builds/win32/visualc/freetype.vcproj,
5265 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
5266 builds/win32/visualce/freetype.vcproj,
5267 builds/win32/visualce/index.html,
5268 builds/wince/vc2005-ce/freetype.vcproj,
5269 builds/wince/vc2005-ce/index.html,
5270 builds/wince/vc2008-ce/freetype.vcproj,
5271 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
5272
5273 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
5274 (FREETYPE_PATCH): Set to 0.
5275
5276 * builds/unix/configure.raw (version_info): Set to 16:2:10.
5277
5278 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
5279 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
5280
Werner Lembergf56691a2013-06-18 10:17:48 +020052812013-06-18 Werner Lemberg <wl@gnu.org>
5282
5283 Fix Savannah bug #39269.
5284
5285 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
5286 case of reacollocation failures.
5287
Andrew Church67cf7a82013-06-18 09:35:34 +020052882013-06-18 Andrew Church <achurch+savannah@achurch.org>
5289
5290 Fix Savannah bug #39266.
5291
5292 If memory allocations fail at certain points while opening a font,
5293 FreeType can either crash due to a NULL dereference or leak memory.
5294
5295 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
5296 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
5297 FT_Open_Face() fails in a memory allocation before the face's
5298 reference count is set to 1, a subsequent `FT_Done_Library' call
5299 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
5300 the face.
5301
5302 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
5303 earlier.
5304 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
5305 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
5306
53072013-06-14 Werner Lemberg <wl@gnu.org>
Werner Lembergd7e34442013-06-14 18:33:39 +02005308
5309 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
5310
Dave Arnoldcb23a622013-06-13 07:46:32 +020053112013-06-06 Dave Arnold <darnold@adobe.com>
5312 Werner Lemberg <wl@gnu.org>
5313
5314 [cff] Add code to Adobe's engine to handle ppem > 2000.
5315
5316 * src/cff/cffgload.c (cff_slot_load): If we get
5317 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
5318
Andrew Church67cf7a82013-06-18 09:35:34 +020053192013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg25b6e602013-06-12 11:06:34 +02005320
Werner Lemberg294ce112013-06-12 23:33:11 +02005321 Another try on pragmas.
5322
5323 * include/freetype/internal/ftdebug.h: Move pragmas to...
5324 * include/freetype/internal/internal.h: ... this file since it gets
5325 included by all source files.
5326 * include/freetype/internal/ftserv.h: Remove pragma which has no
5327 effect.
5328
Dave Arnoldcb23a622013-06-13 07:46:32 +020053292013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg294ce112013-06-12 23:33:11 +02005330
Werner Lemberg25b6e602013-06-12 11:06:34 +02005331 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
5332
5333 This partially undoes commit 3f6e0e0c.
5334
Werner Lembergc06889e2013-06-12 10:58:06 +020053352013-06-12 Werner Lemberg <wl@gnu.org>
5336
5337 More compiler warning fixes.
5338
5339 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
5340
Werner Lemberg99e60d82013-06-10 01:44:37 +020053412013-06-10 Werner Lemberg <wl@gnu.org>
5342
Werner Lemberg5e094c62013-06-10 14:59:21 +02005343 [truetype] Improve handling of broken sbit advance widths.
5344
5345 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
5346 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
5347
5348 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
5349
53502013-06-10 Werner Lemberg <wl@gnu.org>
5351
Werner Lemberga25ecfd2013-06-10 12:57:16 +02005352 [sfnt] Improve embedded bitmap tracing.
5353
5354 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
5355 bitmap strike match to...
5356 (FT_Match_Size): This function.
5357
5358 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
5359 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5360 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5361 tt_sbit_decoder_load_image): Decorate with tracing messages.
5362
53632013-06-10 Werner Lemberg <wl@gnu.org>
5364
Werner Lemberg99e60d82013-06-10 01:44:37 +02005365 Fix Savannah bug #39160.
5366
5367 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
5368 for the degenerate case.
5369
Werner Lemberg2ba871b2013-06-09 08:20:54 +020053702013-06-09 David Turner <digit@google.com>
5371
5372 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
5373
5374 This code, present since eight(!) years in the unused `CACHE'
5375 branch, has been forgotten to apply to the master branch. It's
5376 really amazing that noone has ever complained since
5377 `FTC_Manager_Reset' is pretty useless without flushing the cache.
5378
Werner Lemberg85fd84b2013-06-07 17:10:21 +020053792013-06-07 Werner Lemberg <wl@gnu.org>
5380
Werner Lemberg3f6e0e02013-06-07 18:10:40 +02005381 Add and improve pragmas for MSVC compiler.
5382
5383 * include/freetype/internal/ftdebug.h: Remove pragmas.
5384 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
5385 * include/freetype/internal/ftvalid.h: Handle warning C4324.
5386 * src/base/ftobjs.c: Use push and pop for pragmas.
5387 * src/gzip/ftgzip.c: Handle warning C4244.
5388
53892013-06-07 Werner Lemberg <wl@gnu.org>
5390
Werner Lemberg85fd84b2013-06-07 17:10:21 +02005391 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
5392
5393 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
5394
Werner Lemberg4447b2c2013-06-06 21:28:36 +020053952013-06-06 Dave Arnold <darnold@adobe.com>
5396
5397 [cff] Add early exit feature for width-only calls.
5398
5399 This is for `FT_Get_Advance'.
5400
5401 There are 7 places where the spec says the width can be defined:
5402
5403 hstem/hstemhm
5404 vstem/vstemhm
5405 cntrmask/hintmask
5406 hmoveto
5407 vmoveto
5408 rmoveto
5409 endchar
5410
5411 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
5412 if possible.
5413
5414 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
5415 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
5416 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
5417
Werner Lembergbadf3172013-06-06 09:16:38 +020054182013-06-06 Werner Lemberg <wl@gnu.org>
5419
5420 Next round of compiler fixes.
5421
5422 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
5423 Add proper cast.
5424
5425 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
5426 cast.
5427 * include/freetype/internal/ftstream.h: Decorate stream and frame
5428 macros with `FT_Long' and `FT_ULong' as appropriate.
5429
5430 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
5431 raccess_guess_darwin_newvfs): Use cast.
5432
5433 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
5434
5435 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
5436 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
5437
5438 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
5439 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
5440 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
5441
5442 * src/cid/cidparse.c (cid_parser_new): Use cast.
5443
5444 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
5445
5446 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
5447
5448 * src/raster/ftraster.c (ft_black_reset): Use cast.
5449
5450 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
5451 (ALL_POINTS): Fix cast.
5452
5453 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
5454 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
5455
Dave Arnoldc3782492013-06-05 19:57:55 +020054562013-06-05 Dave Arnold <darnold@adobe.com>
5457
5458 Fix more MSVC Win32 compiler warnings.
5459
5460 * src/base/ftobjs.c: Fix typo in MS pragma.
5461
5462 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
5463 `lineno' is only used in debug mode.
5464
5465 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
5466 debug mode.
5467
Werner Lemberg45392b72013-06-05 13:43:20 +020054682013-06-05 Werner Lemberg <wl@gnu.org>
5469
5470 Fix compiler warnings.
5471
5472 * include/freetype/internal/ftmemory.h: Decorate memory allocation
5473 macros with `FT_Long' where appropriate.
5474 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
5475
5476 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
5477 cast.
5478
5479 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
5480 including `md5.c'.
5481
5482 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
5483 cast.
5484
5485 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
5486 (tt_sbit_decoder_load_bitmap): Beautification.
5487
5488 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
5489 variables (earlier).
5490
5491 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
5492
5493 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
5494 where appropriate.
5495
5496 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
5497
Werner Lembergdc624ca2013-06-04 10:30:48 +020054982013-06-04 Werner Lemberg <wl@gnu.org>
5499
Werner Lembergd9634982013-06-04 20:18:57 +02005500 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
5501
5502 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
5503
55042013-06-04 Werner Lemberg <wl@gnu.org>
5505
Werner Lembergdc624ca2013-06-04 10:30:48 +02005506 Apply fixes for cppcheck nitpicks.
5507
5508 http://cppcheck.sourceforge.net/
5509
Werner Lemberg8d8508e2013-06-04 13:09:01 +02005510 The call was (from the top-level of the FreeType tree):
5511
5512 cppcheck --force \
5513 --enable=all \
5514 -I include \
5515 -I include/freetype/ \
5516 -I include/freetype/config/ \
5517 -I include/freetype/internal/ \
5518 . &> cppcheck.log
5519
Werner Lembergdc624ca2013-06-04 10:30:48 +02005520 Note that the current version heavily chokes on FreeType, delivering
Werner Lemberg8d8508e2013-06-04 13:09:01 +02005521 many wrong results. I will report those issues to the cppcheck team
Werner Lembergdc624ca2013-06-04 10:30:48 +02005522 so that a newer version gives improved results hopefully.
5523
5524 */* Improve variable scopes.
5525 */* Remove redundant initializations which get overwritten.
5526
Werner Lemberge8ed2d62013-08-01 12:20:20 +02005527 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
Werner Lembergdc624ca2013-06-04 10:30:48 +02005528 Remove unused variable.
5529
5530 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
5531
5532 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
5533 Remove functionless code.
5534
5535 * src/tools/ftrandom.c (main): Fix memory leak.
5536
Werner Lemberg2429dc32013-06-03 12:41:58 +020055372013-06-03 Werner Lemberg <wl@gnu.org>
5538
5539 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
5540
5541 This controls whether the old FreeType CFF engine gets compiled into
5542 FreeType. It is now disabled by default.
5543
5544 * devel/ftoption.h, include/freetype/config/ftoption.h
5545 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
5546
5547 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
5548 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
5549 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
5550 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
5551 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
5552
5553 * docs/CHANGES: Updated.
5554
Werner Lembergf9cceeb2013-06-02 23:38:13 +020055552013-06-02 Werner Lemberg <wl@gnu.org>
5556
5557 Fix PNG library handling.
5558
5559 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
5560 LIBPNG_LDFLAGS.
5561
Behdad Esfahbod760d3422013-05-29 11:36:18 +020055622013-05-23 Behdad Esfahbod <behdad@google.com>
5563
5564 Add support for color embedded bitmaps (eg. color emoji).
5565
5566 A new load flag, FT_LOAD_COLOR, makes FreeType load color
5567 embedded-bitmaps, following this draft specification
5568
5569 https://color-emoji.googlecode.com/git/specification/v1.html
5570
5571 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
5572 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
5573 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
5574 pre-multiplied sRGB images. If PNG support is available, PNG color
5575 images as defined in the same proposed specification are supported
5576 also.
5577
5578 Note that color bitmaps are converted to grayscale if client didn't
5579 ask for color.
5580
5581 * builds/unix/configure.raw: Search for libpng.
5582 Add `--without-png' option.
5583
5584 * devel/ftoption.h, include/freetype/config/ftoption.h
5585 (FT_CONFIG_OPTION_USE_PNG): New macro.
5586
5587 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
5588
5589 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
5590 `FT_PIXEL_MODE_BGRA'.
5591
5592 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
5593
5594 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
5595 (ft_gray_for_premultiplied_srgb_bgra): New function.
5596 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
5597
5598 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
5599
5600 * src/sfnt/sfnt.c: Include `pngshim.c'.
5601
5602 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
5603 (tt_face_load_eblc): Load `CBLC'.
5604 (tt_sbit_decoder_init): Load `CBDT'.
5605 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
5606 color and grayscale bitmaps.
5607 Set `num_grays'. This is used by `ftview' to choose the blending
5608 algorithm.
5609 (tt_sbit_decoder_load_byte_aligned,
5610 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
5611 tt_sbit_decoder_load_image): Pass load flag.
5612 s/write/pwrite/.
5613 Don't call `tt_sbit_decoder_alloc_bitmap'.
5614 Updated.
5615 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
5616 (tt_sbit_decoder_load_bitmap): Pass load flag.
5617 Handle new glyph formats 17, 18, and 19.
5618 Call `tt_sbit_decoder_alloc_bitmap'.
5619 Flatten color bitmaps if necessary.
5620 (tt_face_load_sbit_image): Updated.
5621
5622 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
5623
5624 * docs/CHANGES: Updated.
5625
Guenter41e44802013-05-24 11:38:09 +020056262013-05-24 Guenter <info@gknw.net>
5627
5628 Apply Savannah patch #8055.
5629
5630 Make `apinames' create an import file for NetWare.
5631
5632 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
5633 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
5634 (names_dump): Handle it.
5635 (usage): Updated.
5636 (main): Handle new command line flag `-wN'.
5637
Behdad Esfahbod2d6e1fb2013-05-23 08:01:20 +020056382013-05-23 Behdad Esfahbod <behdad@behdad.org>
5639
5640 Compilation fix.
5641
5642 * src/truetype/ttinterp.c (TT_RunIns)
5643 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
5644
Infinality18f35ed2013-05-21 20:51:15 -050056452013-05-22 Infinality <infinality@infinality.net>
5646
Infinality3c783c12013-05-21 21:03:00 -05005647 [truetype] Formatting and an additional subpixel tweak.
5648
5649 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
5650 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
5651 Revert previous modification for Verdana clones.
5652
56532013-05-22 Infinality <infinality@infinality.net>
5654
Infinality18f35ed2013-05-21 20:51:15 -05005655 [truetype] Adjust subpixel zp2 moves and tweak rules.
5656
5657 These modifications fix thin diagonal stems in some legacy fonts.
5658
5659 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
5660 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
5661 (Ins_SHP): Disable x moves here for subpixel rendering.
5662 (Ins_SHPIX): Only disable x moves in compatibility mode.
5663 Split out zp2 move reversals and reorder conditional respectively.
5664
5665 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
5666 Only adjust Verdana clones for 17 ppem.
5667 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
5668 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
5669
Infinality63bfa832013-05-20 07:38:21 +020056702013-05-20 Infinality <infinality@infinality.net>
5671
5672 [truetype] Simplify and improve subpixel function detection.
5673
5674 Some small enhancements have allowed the removal of many macros and
5675 the simplification of existing rules in `ttsubpix.c'.
5676
5677 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
5678 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
5679 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
5680 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
5681 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
5682
5683 * src/truetype/ttsubpix.c: Updated affected rules.
5684
5685 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
5686 (INS_FDEF): Add additional function detection.
5687 (INS_ENDF): Set runtime flag.
5688 (Ins_CALL): Skip the call under certain conditions.
5689 Remove bad code.
5690 (Ins_LOOPCALL): Skip the call under certain conditions.
5691 Remove bad code.
5692 (Move_Zp2_Point): Updated.
5693 (Ins_SHPIX): Updated.
5694 Skip the move under some situations.
5695 (Ins_MIAP): Improve conditions.
5696 (Ins_MIRP): Updated.
5697 (Ins_DELTAP): Skip move under certain conditions.
5698 Simplify conditions.
5699 (TT_RunIns): Updated.
5700 Add code to handle new function detection.
5701 Trace messages.
5702
Werner Lembergfd664692013-05-17 17:40:27 +020057032013-05-17 Werner Lemberg <wl@gnu.org>
5704
5705 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
5706
5707 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
5708 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
5709
Werner Lembergf04951a2013-05-17 13:51:07 +020057102013-05-15 Werner Lemberg <wl@gnu.org>
5711
5712 [truetype] Add `interpreter-version' property.
5713
5714 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
5715 at runtime.
5716
Werner Lemberg27991332013-05-17 14:00:26 +02005717 * include/freetype/ftttdrv.h: New file.
5718
5719 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
5720 macro.
5721
Werner Lembergf04951a2013-05-17 13:51:07 +02005722 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
5723 (tt_property_set, tt_property_get): Fill templates.
5724
5725 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
5726 member.
5727 Remove unused `extension_component' member.
5728
5729 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
5730 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
5731 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
5732
5733 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
5734 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
5735 Update all affected functions to use it.
5736 Use TT_INTERPRETER_VERSION_XXX where appropriate.
5737
5738 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
5739 (tt_driver_init): Initialize `interpreter_version'.
5740
5741 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
5742 Use TT_INTERPRETER_VERSION_XXX where appropriate.
5743
Werner Lemberg7441dd82013-05-13 09:12:46 +020057442013-05-13 Werner Lemberg <wl@gnu.org>
5745
Werner Lemberg6650be72013-05-13 10:05:29 +02005746 [truetype] Avoid empty source file.
5747
5748 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
5749 Provide dummy typedef.
5750
57512013-05-13 Werner Lemberg <wl@gnu.org>
5752
Werner Lemberg7441dd82013-05-13 09:12:46 +02005753 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
5754
5755 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
5756
Brian Nixon8d6025c2013-05-13 09:06:42 +020057572013-05-13 Brian Nixon <bnixon@yahoo.com>
5758
5759 Fix Savannah bug #38970.
5760
5761 * src/base/ftdebug.c, builds/win32/ftdebug.c,
5762 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
5763 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
5764
Werner Lembergd51ac9c2013-05-12 06:00:27 +020057652013-05-12 Werner Lemberg <wl@gnu.org>
5766
Werner Lembergcd888752013-05-12 15:08:57 +02005767 [truetype] Add framework for TrueType properties.
5768
5769 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
5770 (tt_property_set, tt_property_get): New functions, still empty.
5771 Define `tt_service_properties' service.
5772 Update `tt_services'.
5773
5774 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
5775 (TT_SERVICE_PROPERTIES_GET): New macro.
5776 (TTModulePIC): Add `tt_service_properties'.
5777
57782013-05-12 Werner Lemberg <wl@gnu.org>
5779
Werner Lembergb112fa42013-05-12 07:29:04 +02005780 Fix Savannah bug #38967.
5781
5782 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
5783
57842013-05-12 Werner Lemberg <wl@gnu.org>
5785
Werner Lembergcbcf33d2013-05-12 07:27:48 +02005786 Introduce unsigned 64bit type (if available).
5787
5788 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
5789 [FT_LONG64]: Provide FT_UInt64.
5790
5791 * builds/unix/ftconfig.in: Synchronized.
5792
57932013-05-12 Werner Lemberg <wl@gnu.org>
5794
Werner Lembergd51ac9c2013-05-12 06:00:27 +02005795 Fix Savannah bug #38968.
5796
5797 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
5798 FT_Property_{Set,Get}.
5799 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
5800 FT_Property_{Set,Get}.
5801
Werner Lembergf6aa0892013-05-10 07:58:47 +020058022013-05-10 Werner Lemberg <wl@gnu.org>
5803
Werner Lembergea2b4752013-05-10 08:04:33 +02005804 [sfnt] Clean up bitmap code.
5805
5806 * src/sfnt/ttsbit.c: Deleted.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005807 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
Werner Lembergea2b4752013-05-10 08:04:33 +02005808 * rules.mk (SFNT_DRV_H): Updated.
5809
58102013-05-10 Werner Lemberg <wl@gnu.org>
5811
Werner Lembergf6aa0892013-05-10 07:58:47 +02005812 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
5813
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00005814----------------------------------------------------------------------------
5815
Werner Lembergf57fc592015-01-17 20:41:43 +01005816Copyright 2013-2015 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00005817David Turner, Robert Wilhelm, and Werner Lemberg.
5818
5819This file is part of the FreeType project, and may only be used, modified,
5820and distributed under the terms of the FreeType project license,
5821LICENSE.TXT. By continuing to use, modify, or distribute this file you
5822indicate that you have read the license and understand and accept it
5823fully.
5824
5825
5826Local Variables:
5827version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00005828coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00005829End: