blob: d2871e81be6a8310a2183553c9f25bf0ff240856 [file] [log] [blame]
David Weiß3889cb22014-10-14 11:35:16 +020012014-10-14 David Weiß <David.Weiss@ptvgroup.com>
2
3 [build] Better optimization settings for vc2010 solution file.
4
5 * builds/windows/vc2010/freetype.sln,
6 builds/windows/vc2010/freetype.vcxproj: Updated.
7
Werner Lemberg8f178092014-10-14 08:28:09 +020082014-10-14 Werner Lemberg <wl@gnu.org>
9
10 [autofit] Adjust Devenagari character range.
11
12 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
13 are common to all other Indic scripts.
14
Werner Lemberg1ca5fa12014-10-12 08:31:32 +0200152014-10-12 Werner Lemberg <wl@gnu.org>
16
17 [sfnt] Fix Savannah bug #43392.
18
19 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
20 vertical metrics uninitialized.
21
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -0400222014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
23
24 [base] Small bbox correction.
25
26 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
27 instead of initial point that could be `off' in conic outlines.
28
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -0400292014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
30
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -040031 [base] Fix Savannah bug #43356.
32
33 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
34 of implicit `to'.
35 (BBox_Line_To): New emitter that does not update bbox.
36
372014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
38
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -040039 [base] Introduce and use new macro `FT_UPDATE_BBOX'
40
41 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
42 (FT_Outline_Get_BBox): Use it here.
43
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -0400442014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
45
46 [base] Significant optimization of `ft_div64by32'
47
48 We shift as many bits as we can into the high register, perform
49 32-bit division with modulo there, then work through the remaining
50 bits with long division. This optimization is especially noticeable
51 for smaller dividends that barely use the high register.
52
53 * src/base/ftcalc.c (ft_div64by32): Updated.
54
Dave Arnold537c55d2014-10-02 06:32:32 +0200552014-10-02 Dave Arnold <darnold@adobe.com>
56
57 [cff] Fix Savannah bug #43271.
58
59 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
60 detection to use logarithms and clamp `scaledStem'.
61
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -0400622014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
63
Alexei Podtelezhnikov74d0aad2014-10-01 23:27:15 -040064 * src/base/ftcalc.c: Remove miscellaneous type casts.
65
662014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
67
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -040068 [base] Use more common `FT_MSB' implementation with masks.
69
70 * src/base/ftcalc.c (FT_MSB): Updated.
71
Alexei Podtelezhnikov955aff12014-09-30 23:09:39 -0400722014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
73
74 [base] Clean up.
75
76 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
77 code.
78
Alexei Podtelezhnikov7f491112014-09-25 22:54:38 -0400792014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
80
81 [base] Avoid unnecessary long division.
82
83 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
84 lack thereof are predicted accurately.
85
86 * src/base/ftcalc.c (ft_div64by32): Improve readability.
87 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
88 when multiplication stayed within 32 bits.
89
Werner Lemberg5b68e4f2014-09-24 19:06:13 +0200902014-09-24 Werner Lemberg <wl@gnu.org>
91
92 [autofit] Minor clean-ups.
93
94 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
95
96 * src/autofit/afhints.c (af_glyph_hints_dump_points,
97 af_glyph_hints_align_strong_points): Updated.
98
99 * src/autofit/aflatin.c (af_latin_hints_link_segments,
100 af_latin_hints_compute_segments), src/autofit/afcjk.c
101 (af_cjk_hints_link_segments), src/autofit/aflatin2.c
102 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
103 There are no longer fake segments since more than 10 years...
104
Werner Lemberg387a9fe2014-09-22 06:42:24 +02001052014-09-22 Werner Lemberg <wl@gnu.org>
106
107 [autofit] Minor code streamlining.
108
109 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
110 initialization.
111
Alexei Podtelezhnikov5c894842014-09-19 22:03:15 -04001122014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
113
114 * src/base/ftcalc.c: Harmonize code.
115
1162014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -0400117
Alexei Podtelezhnikovef070d42014-09-15 22:06:19 -0400118 [base] Tighten the overflow check in `FT_MulDiv'.
119
120 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
121
1222014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
123
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -0400124 Fix Savannah bug #43153.
125
126 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -0400127 overflow in `divider'.
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -0400128
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -04001292014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
130
Alexei Podtelezhnikov336735d2014-09-03 22:55:26 -0400131 [base] Tighten the overflow check in `FT_DivFix'.
132
133 This fixes a 13-year old bug. The original overflow check should have
134 been updated when rounding was introduced into this function
135 (c2cd00443b).
136
137 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
138 * include/freetype.h (FT_DivFix): Updated documentation.
139
1402014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
141
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -0400142 [base] Tighten the overflow check in `FT_MulFix'.
143
144 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
145
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -04001462014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
147
148 [truetype] Shortcut ppem calculations for square pixels.
149
150 * src/truetype/ttinterp.h (TT_ExecContextRec): New field
151 `cur_ppem_func' with a function pointer.
152 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
153 depending on the pixel geometry to either...
154 (Current_Ppem_Stretched): ... this for stretched pixels.
155 (Current_Ppem): ... or this for square pixels.
156 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
157
Behdad Esfahbod1ec98b22014-08-31 08:47:11 +02001582014-08-31 Behdad Esfahbod <behdad@behdad.org>
159
160 Don't use `register' keyword. Fixes compiler warnings.
161
162 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
163 * src/gzip/inftrees.c (huft_build): Ditto.
164 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
165
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -04001662014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
167
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -0400168 [truetype] Optimize DELTAP and DELTAC.
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -0400169
170 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
171 calculations outside of the loop.
172
Alexei Podtelezhnikov98688592014-08-21 23:28:52 -04001732014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
174
175 Fix Savannah bug #43033.
176
177 * include/config/ftconfig.h, builds/unix/ftconfig.in,
178 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
179 64-bit type is `long'.
180
Alexei Podtelezhnikov8fd87d42014-08-20 00:57:22 -04001812014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
182
183 [base] Small optimization of `FT_MulFix'.
184
185 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
186 32-bit calculations.
187
Alexei Podtelezhnikovf09326a2014-08-20 00:08:38 -04001882014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
189
190 [base] Use unsigned calculation in `FT_MulDiv'.
191
192 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
193
Alexei Podtelezhnikov382f3152014-08-18 23:16:15 -04001942014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
195
196 [base] Remove truncation in `FT_DivFix'.
197
198 * src/base/ftcalc.c (FT_DivFix): Updated.
199
Alexei Podtelezhnikov5ef20232014-08-14 23:21:46 -04002002014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
201
202 Minor refactoring.
203
204 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
205
2062014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovc7022462014-08-14 23:01:01 -0400207
208 Turn FT_MSB into a macro when using gcc builtins.
209
210 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
211
Alexei Podtelezhnikovf8efbcf2014-08-12 23:22:17 -04002122014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
213
214 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
215
216 * src/base/ftbbox.c (BBox_Cubic_Check): Update.
217 (update_cubic_max): Repalce with...
218 (cubic_peak): ... this, which now handles upscaling.
219
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -04002202014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
221
Alexei Podtelezhnikov28018d42014-08-12 00:26:16 -0400222 [base] Handle collapsed outlines to avoid undefined FT_MSB.
223
224 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
225
2262014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
227
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -0400228 [base] Restore FT_MulFix inlining.
229
230 * include/freetype.h (FT_MulFix): Unconditionally defined.
231
232 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
233
234 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
235 which conditionally replaces the function with an inline version
236 through the macro.
237
Alexei Podtelezhnikov90be4b62014-08-08 22:27:10 -04002382014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
239
240 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
241
Werner Lembergd17cabf2014-07-26 09:53:50 +09002422014-07-26 Werner Lemberg <wl@gnu.org>
243
244 [cff] Fix typo.
245
246 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
247 offsets in third quadrant.
248
249 Reported by maks <maksqwe1@ukr.net>.
250
Werner Lemberg4e754132014-07-17 17:34:49 +09002512014-07-17 Werner Lemberg <wl@gnu.org>
252
253 Fix Savannah bug #42788.
254
255 * src/pfr/pfrobjs.c: Include `ftcalc.h'.
256
Alexei Podtelezhnikovc0a6f202014-07-16 22:05:56 -04002572014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
258
259 Replace `ft_highpow2' function.
260
261 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
262 `ft_highpow2'.
263
264 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
265 it.
266
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -04002672014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
268
Werner Lembergcbbf26b2014-07-17 17:27:12 +0900269 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
Alexei Podtelezhnikov177982e2014-07-15 23:54:34 -0400270
2712014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
272
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -0400273 [base] Move assembler code back in the source file.
274
275 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
276
277 * include/config/ftconfig.h, builds/unix/ftconfig.in,
278 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
279
280 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
281
2822014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikov1183cd42014-07-14 22:30:55 -0400283
284 [base] Further clean up color bitmap conversion.
285
286 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
287 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
288
Werner Lemberg441b3f32014-07-13 02:28:14 +09002892014-07-13 Werner Lemberg <wl@gnu.org>
290
291 [truetype] Improve handling of buggy `prep' tables.
292
293 In case of an error in the `prep' table, no longer try to execute it
294 again and again. This makes FreeType handle endless loops in buggy
295 fonts much faster.
296
297 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
298 and `cvt_ready' are now negative if not initialized yet, otherwise
299 they indicate the error code of the last run.
300
301 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
302 tt_size_done_bytecode, tt_size_init_bytecode,
303 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
304 Updated.
305
306 * src/truetype/ttgload.c (tt_loader_init): Updated.
307 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
308 and `prep' only if we are in the `glyf' table.
309
Werner Lemberge98e2bc2014-07-12 16:37:39 +09003102014-07-12 Werner Lemberg <wl@gnu.org>
311
312 * builds/vms/ftconfig.h: Synchronize.
313 Problem reported by Alexei.
314
Alexei Podtelezhnikov35576bf2014-07-11 22:40:34 -04003152014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
316
317 [base] Clean up bitmap conversion.
318
319 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
320 appropriate FT_DivFix and remove superfluous upscaling.
321
Alexei Podtelezhnikovceab95a2014-07-04 23:01:32 -04003222014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
323
324 [base] Small optimization of the ancient code.
325
326 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
327 condition for direct 32-bit calculations.
328
Werner Lemberg38975562014-06-27 06:55:56 +02003292014-06-27 Werner Lemberg <wl@gnu.org>
330
331 Fix Apple standard glyph names.
332
333 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
334 `tools/glnames.py'
335
336 Problem reported by Adam Twardoch <adam@fontlab.com>.
337
Werner Lembergcf2347c2014-06-17 09:01:04 +02003382014-06-17 Werner Lemberg <wl@gnu.org>
339
Werner Lemberg231171f2014-06-17 09:14:32 +0200340 Partially revert commit from 2014-06-13.
341
342 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
343 declaration of `p_first' and `p_last' out of the loop.
344
3452014-06-17 Werner Lemberg <wl@gnu.org>
346
Werner Lembergcf2347c2014-06-17 09:01:04 +0200347 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
348
349 This simplifies cross-compiling.
350
Werner Lemberg6497b9c2014-06-13 09:28:00 +02003512014-06-13 Werner Lemberg <wl@gnu.org>
352
Werner Lemberge5c0fff2014-06-13 14:01:20 +0200353 Fix more compiler warnings.
354 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
355
356 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
357 Make integer constant unsigned.
358
359 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
360 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
361 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
362 casts.
363
3642014-06-13 Werner Lemberg <wl@gnu.org>
365
Werner Lemberg6497b9c2014-06-13 09:28:00 +0200366 Fix compiler warnings.
367 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
368
369 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
Werner Lembergcbbf26b2014-07-17 17:27:12 +0900370 src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
Werner Lemberg6497b9c2014-06-13 09:28:00 +0200371 `unsigned' issues.
372
373 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
374 happy.
375
376 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
377 for `fir'.
378 Fix `signed' vs. `unsigned' issues.
379
380 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
381 (WRITE_USHORT, WRITE_ULONG): Add proper casts.
382
383 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
384
385 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
386 and `B2'.
387
Alexey Petruchik02f21702014-05-16 08:09:43 +02003882014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
389
390 [cmake] Add option to build OS X framework.
391
392 * CMakeLists.txt: Update accordingly.
393
394 * builds/mac/freetype-Info.plist: New file.
395
Pavel Koshevoy15da66a2014-05-13 07:33:48 +02003962014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
397
398 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
399
Werner Lemberg07e7b8a2014-05-11 08:00:25 +02004002014-05-11 Werner Lemberg <wl@gnu.org>
401
Werner Lembergfaa21472014-05-11 12:44:00 +0200402 [autofit] Fix variable initializations.
403
404 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
405 values to `in_dir' and `out_dir' for all points.
406
4072014-05-11 Werner Lemberg <wl@gnu.org>
408
Werner Lemberg07e7b8a2014-05-11 08:00:25 +0200409 [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
410
411 Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
412
413 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
414 finding first non-near point.
415 Properly initialize non-near point deltas.
416
Werner Lemberg63bef9a2014-05-01 07:16:05 +02004172014-05-01 Werner Lemberg <wl@gnu.org>
418
Werner Lembergc576bb02014-05-01 17:24:19 +0200419 [autofit] Add blue-zone support for Devanagari.
420
421 This essentially moves the Devanagari script from the `Indic' hinter
422 to the `Latin' hinter. Thanks to Girish Dalvi
423 <girish.dalvi@gmail.com> for guidance with blue zone characters!
424
425 * src/autofit/afblue.dat: Add blue zone data for Devanagari.
426
427 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
428
429 * src/autofit/afscript.h: Add Devanagari standard characters and
430 move data out of AF_CONFIG_OPTION_INDIC block.
431
432 * src/autofit/afranges.c: Move Devanagari data out of
433 AF_CONFIG_OPTION_INDIC block.
434 Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
435
436 * src/autofit/afstyles.h: Update Devanagari data; in particular, use
437 AF_WRITING_SYSTEM_LATIN.
438
4392014-05-01 Werner Lemberg <wl@gnu.org>
440
Werner Lemberg63bef9a2014-05-01 07:16:05 +0200441 [autofit] Fix handling of neutral blue zones in stems.
442
443 * src/autofit/afhints.h (AF_Edge_Flags): New value
444 `AF_EDGE_NEUTRAL'.
445
446 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
447 neutral blue zones with AF_EDGE_NEUTRAL.
448 (af_latin_hint_edges): Skip neutral blue zones if necessary.
449
Werner Lembergccfc4b42014-04-28 21:13:14 +02004502014-04-28 Werner Lemberg <wl@gnu.org>
451
452 [autofit] Introduce neutral blue zones to the latin module.
453
454 Such blue zones match either the top or the bottom of a contour. We
455 need them for scripts where accent-like elements directly touch the
456 base character (for example, some vowel signs in Devanagari, cf.
457 U+0913 or U+0914).
458
459 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
460 property.
461
462 * src/autofit/afblue.h: Regenerated.
463
464 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
465 (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
466
467 * src/autofit/aflatin.c (af_latin_metrics_init_blues,
468 af_latin_hints_compute_blue_edges): Handle neutral blue zones.
469
Werner Lembergabb3fca2014-04-25 22:13:32 +02004702014-04-25 Werner Lemberg <wl@gnu.org>
471
472 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
473
474 Using input glyph coverage data is simply wrong.
475
476 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
477 Mantas Mikulėnas <grawity@gmail.com>.
478
Werner Lembergf1936372014-04-23 08:22:33 +02004792014-04-23 Werner Lemberg <wl@gnu.org>
480
481 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
482
483 This spot has been missed while introducing support for various
484 drop-out modes years ago (including no drop-out mode, which this
485 commit fixes).
486
487 Problem reported by Patrick Thomas <pthomas505@gmail.com>.
488
Werner Lembergd9b44702014-04-22 07:33:07 +02004892014-04-22 Werner Lemberg <wl@gnu.org>
490
491 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
492
Werner Lemberg98e510e2014-04-20 22:11:27 +02004932014-04-20 Werner Lemberg <wl@gnu.org>
494
495 [autofit] Fix Savannah bug #42148.
496
497 The adaptation of the cjk auto-hinter module to blue stringsets in
498 2013-08-25 had three severe bugs. Mea culpa.
499
500 1. Contrary to the latin auto-hinter, characters for reference and
501 overshoot values of a blue zone are specified separately. Due to
502 the screwed-up change it didn't work at all.
503
504 2. A boolean comparison was erroneously replaced with a cast,
505 causing invalid results with the `^' operator later on. The
506 visual artifact caused by this problem is the topic of the bug
507 report.
508
509 3. Two flag values were inverted, causing incorrect assignment of
510 reference and overshoot values.
511
512 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
513 syntax to have both reference and overshoot characters in a single
514 string. This is error #1.
515 Add extensive comments.
516
517 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
518 longer used.
Werner Lembergccfc4b42014-04-28 21:13:14 +0200519 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
Werner Lemberg98e510e2014-04-20 22:11:27 +0200520 This is error #3.
521
522 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
523
524 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
525 Use character `|' to separate characters for reference and overshoot
526 values.
527 Improve tracing messages, synchronizing them with the latin
528 auto-hinter.
Werner Lembergccfc4b42014-04-28 21:13:14 +0200529 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
Werner Lemberg98e510e2014-04-20 22:11:27 +0200530 This is error #2.
531 (af_cjk_align_linked_edge): Add tracing message.
532
533 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
534 used.
535
Werner Lembergbbd83132014-04-17 01:24:36 +02005362014-04-17 Werner Lemberg <wl@gnu.org>
537
Werner Lemberg8c7fb782014-04-17 15:53:25 +0200538 [autofit] More coverage fixes for complex scripts.
539
540 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
541 of GSUB lookups into output coverage. Otherwise, ligatures are not
542 handled properly.
543 Don't check blue zone characters for default coverage.
544
5452014-04-17 Werner Lemberg <wl@gnu.org>
546
Werner Lembergbbd83132014-04-17 01:24:36 +0200547 Make `FT_Get_SubGlyph_Info' actually work.
548
549 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
550 if there is no error.
551
Werner Lemberg181fd072014-04-15 16:47:05 +02005522014-04-15 Werner Lemberg <wl@gnu.org>
553
554 [afblue.pl]: Minor improvements.
555
556 * src/tools/afblue.pl: Allow whitespace before comments.
557 Ignore whitespace in strings.
558
Werner Lemberg8b1f2a62014-04-14 07:58:19 +02005592014-04-14 Werner Lemberg <wl@gnu.org>
560
561 [autofit] Improve coverage handling.
562
563 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
564 appearing in the GPOS table if we are processing the default
565 coverage.
566
David Weber76307872014-04-13 15:41:13 +02005672014-04-13 David Weber <weber.aulendorf@googlemail.com>
568
569 [smooth] Fix stand-alone compilation.
570
571 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
572
Werner Lemberg8a94b1e2014-04-12 20:44:33 +02005732014-04-12 Werner Lemberg <wl@gnu.org>
574
575 [autofit] Redesign the recognition algorithm of strong points.
576
577 In particular, local extrema without horizontal or vertical segments
578 are better recognized:
579
580 + A + D
581 \ /
582 \ /
583 \ /
584 \ /
585 \ + C
586 \ /
587 B +/
588
589 If the distances AB and CD are large, point B wasn't previously
590 detected as an extremum since the `ft_corner_is_flat' function
591 `swallowed' BC regardless of its direction, tagging point B as weak.
592 The next iteration started at B and made `ft_corner_is_flat' swallow
593 point C, tagging it as weak also, et voilà.
594
595 To improve that, another pass gets now performed before calling
596 `ft_corner_is_flat' to improve the `topology' of an outline: A
597 sequence of non-horizontal or non-vertical vectors that point into
598 the same quadrant are handled as a single, large vector.
599
600 Additionally, distances of near points are now accumulated, which
601 makes the auto-hinter handle them as if they were prepended to the
602 next non-near vector.
603
604 This generally improves the auto-hinter's rendering results.
605
606 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
607
608 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
609 `AF_FLAG_NEAR'.
610
Werner Lemberg71f53e12014-04-05 16:27:19 +02006112014-04-05 Werner Lemberg <wl@gnu.org>
612
613 [autofit] Improve scoring algorithm for identifying stems.
614
615 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
616
617 The new algorithm takes care of the width of stems: If the distance
618 between two segments is larger than the largest stem width, the
619 demerits quickly increase for larger distances. This improves
620 hinting of slanted fonts (especially if the inner parts of serifs
621 have non-horizontal `shoulders'), avoiding false stem links.
622
623 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
624 stem width (if available) to compute better demerits for distances
625 between stems.
626 (af_latin_hints_detect_features): Pass stem width array and array
627 size.
628 (af_latin_metrics_init_widths): Updated to use original algorithm.
629 (af_latin_hints_apply): Updated to use new algorithm.
630
631 * src/autofit/aflatin.h: Updated.
632 * src/autofit/afcjk.c: Updated.
633
Werner Lembergf8555b52014-04-03 05:45:38 +02006342014-04-03 Werner Lemberg <wl@gnu.org>
635
636 Don't require `gzip' module for `sfnt'.
637
638 Reported by Preet <prismatic.project@gmail.com>.
639
640 * src/sfnt/sfobjs.c (woff_open_font): Guard use of
641 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
642
Werner Lembergf41070f2014-03-27 17:38:23 +01006432014-03-27 Werner Lemberg <wl@gnu.org>
644
645 Fix Savannah bug #38235.
646
647 Work around a bug in pkg-config version 0.28 and earlier: If a
648 variable value gets surrounded by doublequotes (in particular values
649 for the `prefix' variable), the prefix override mechanism fails.
650
651 * builds/unix/freetype2.in: Don't use doublequotes.
652 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
653 names with backslashes.
654
Werner Lembergab76d972014-03-24 19:45:03 +01006552014-03-24 Werner Lemberg <wl@gnu.org>
656
657 Fix Savannah bug #41946.
658
659 Based on a patch from Marek Kašík <mkasik@redhat.com>.
660
661 * builds/unix/configure.raw (LIBS_CONFIG): Remove.
662 * builds/unix/freetype-config.in (libs): Hard-code value.
663 * builds/unix/unix-def.in: Updated.
664
Werner Lembergd5159922014-03-22 06:20:54 +01006652014-03-22 Werner Lemberg <wl@gnu.org>
666
667 Another revert for the change from 2014-03-18.
668
669 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
670
671 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
672 gets always exported.
673
Werner Lembergf0c471a2014-03-20 07:13:12 +01006742014-03-20 Werner Lemberg <wl@gnu.org>
675
676 CMakeLists.txt: Another fix for include directories.
677
678 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
679
Werner Lembergcc7cf2c2014-03-19 07:35:35 +01006802014-03-19 Werner Lemberg <wl@gnu.org>
681
Werner Lemberg606c74f2014-03-19 23:46:42 +0100682 CMakeLists.txt: Fix include directories.
683
684 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
685
6862014-03-19 Werner Lemberg <wl@gnu.org>
687
Werner Lembergcc7cf2c2014-03-19 07:35:35 +0100688 Partially revert last commit.
689
690 Found by Alexei.
691
692 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
693 those variables is plain wrong, since we are in a loop.
694
Sean McBride87628722014-03-18 08:39:35 +01006952014-03-18 Sean McBride <sean@rogue-research.com>
696 Werner Lemberg <wl@gnu.org>
697
698 Fix clang warnings.
699
700 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
701 some variables.
702
703 * src/base/ftcalc.c (FT_MulFix): Only use code if
704 `FT_MULFIX_INLINED' is not defined.
705
706 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
707 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
708 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
709 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
710 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
711 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
712 function static.
713
714 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
715 code.
716
Werner Lemberg23367ff2014-03-17 07:33:14 +01007172014-03-17 Werner Lemberg <wl@gnu.org>
718
719 Fix Savannah bug #41869.
720
721 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
722 validate glyph indices returned by
723 `hb_ot_layout_lookup_collect_glyphs'.
724
725 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
726
727 * docs/CHANGES: Updated.
728
Werner Lemberg03181682014-03-14 08:06:06 +01007292014-03-14 Werner Lemberg <wl@gnu.org>
730
731 * builds/unix/configure.raw: Don't show error messages of `which'.
732
Alan Coopersmithed372b72014-03-09 06:14:12 +01007332014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
734
735 Fix cppcheck 1.64 warning.
736
737 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
738 dereference in case of error.
739
Werner Lemberg1a69dc72014-03-09 06:06:58 +01007402014-03-09 Sean McBride <sean@rogue-research.com>
741
742 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
743
Werner Lemberg05565362014-03-06 18:56:58 +01007442014-03-06 Werner Lemberg <wl@gnu.org>
745
Werner Lembergec8853c2014-03-06 19:13:45 +0100746 * Version 2.5.3 released.
747 =========================
748
749
750 Tag sources with `VER-2-5-3'.
751
752 * docs/VERSION.DLL: Update documentation and bump version number to
753 2.5.3.
754
755 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
756 builds/windows/vc2005/index.html,
757 builds/windows/vc2008/freetype.vcproj,
758 builds/windows/vc2008/index.html,
759 builds/windows/vc2010/freetype.vcxproj,
760 builds/windows/vc2010/index.html,
761 builds/windows/visualc/freetype.dsp,
762 builds/windows/visualc/freetype.vcproj,
763 builds/windows/visualc/index.html,
764 builds/windows/visualce/freetype.dsp,
765 builds/windows/visualce/freetype.vcproj,
766 builds/windows/visualce/index.html,
767 builds/wince/vc2005-ce/freetype.vcproj,
768 builds/wince/vc2005-ce/index.html,
769 builds/wince/vc2008-ce/freetype.vcproj,
770 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
771
772 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
773
774 * builds/unix/configure.raw (version_info): Set to 17:2:11.
775 * CMakeLists.txt (VERSION_PATCH): Set to 3.
776 * docs/CHANGES: Updated.
777
7782014-03-06 Werner Lemberg <wl@gnu.org>
779
Werner Lemberg05565362014-03-06 18:56:58 +0100780 Fixes for compilation with C++.
781
782 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
783 (af_get_coverage): Updated.
784 (COVERAGE): Add cast.
785
Sean McBrideb24e8d32014-03-06 14:54:22 +01007862014-03-06 Sean McBride <sean@rogue-research.com>
787
788 Remove more clang analyzer warnings.
789
790 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
791 (TT_Load_Glyph): Remove dead stores.
792
Werner Lemberga32758f2014-03-05 08:02:46 +01007932014-03-05 Werner Lemberg <wl@gnu.org>
794
795 * builds/unix/configure.raw: Simplify.
796
suzuki toshiya382f3ef2014-03-05 10:19:15 +09007972014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
798
799 Fix a bug in configure in library dependency setting
Werner Lemberga32758f2014-03-05 08:02:46 +0100800 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
suzuki toshiya382f3ef2014-03-05 10:19:15 +0900801
802 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
803
Werner Lembergf48f7dc2014-03-04 04:40:07 +01008042014-03-04 Werner Lemberg <wl@gnu.org>
805
806 Minor fix for `make devel'.
807
808 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
809 pkg-config for bzip2 since not all GNU/Linux distributions have
810 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
811 normally).
812
Werner Lemberg7ac76b52014-03-04 04:29:17 +01008132014-03-04 Sean McBride <sean@rogue-research.com>
814
815 Fix several clang static analyzer dead store warnings.
816
817 * src/autofit/afhints.c (af_glyph_hints_reload,
818 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
819
820 * src/bdf/bdflib.c (bdf_font_load): Ditto.
821
822 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
823 psh_glyph_interpolate_other_points): Ditto.
824
825 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
826
Werner Lemberg93ebcbd2014-03-03 07:13:45 +01008272014-03-03 Werner Lemberg <wl@gnu.org>
828
829 Rewrite library option handling in `configure'.
830
831 o Introduce `auto' value for `--with-XXX' library options; this is
832 now the default.
833
834 o First use `pkg-config' for library detection, then fall back to
835 other tests.
836
837 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
838 --with-harfbuzz): Rewrite.
839 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
840 variables to collect data for `freetype2.pc' and `freetype-config'.
841 (FT2_EXTRA_LIBS): Renamed to ...
842 (ft2_extra_libs): This since it gets no longer substituted.
843 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
844 New output variables, replacing `XXX_PKG' and `LIBXXX'.
845 Add notice at the end of `configure' showing the library
846 configuration.
847
848 * builds/unix/freetype-config.in (--static): New command line
849 option.
850 (libs): Updated.
851 (staticlibs): New variable, to be used if `--static' is given.
852 * builds/doc/freetype-config.1: Document `--static'.
853
854 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
855
Werner Lemberg86026a42014-03-01 06:57:19 +01008562014-03-01 Werner Lemberg <wl@gnu.org>
857
Werner Lemberge962a912014-03-01 21:00:02 +0100858 Avoid `long long' warnings with older gcc compilers.
859 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
860
861 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
862 versions < 4.6. This is especially needed for Max OS X since this
863 OS runs a gcc variant (or emulation) based on version 4.2.1.
864
8652014-03-01 Werner Lemberg <wl@gnu.org>
866
Werner Lemberg6030a9f2014-03-01 14:01:12 +0100867 * docs/INSTALL.CROSS: Revised and updated.
868
8692014-03-01 Werner Lemberg <wl@gnu.org>
870
Werner Lemberg646db052014-03-01 12:48:07 +0100871 Make `make clean' remove `freetype2.pc'.
872
873 This is a generated file at build time, not configure time.
874
875 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
876 (CLEAN): This variable.
877
8782014-03-01 Werner Lemberg <wl@gnu.org>
879
Werner Lemberg00c79ed2014-03-01 12:32:20 +0100880 Use pkg-config for detecting libpng and libbz2 also.
881
882 * builds/unix/configure.raw (HAVE_PKG): New variable.
883 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
884 Search for libpng using `pkg-config'.
885 Fix definition of `LIBHARFBUZZ' variable.
886 * builds/unix/freetype-config.in ($libs): Updated.
887 * builds/unix/freetype2.in: Add `URL' field.
888 Update `Requires.private' and `Libs.private'.
889 * builds/unix/unix-def.in: Updated.
890
8912014-03-01 Werner Lemberg <wl@gnu.org>
892
Werner Lemberg86026a42014-03-01 06:57:19 +0100893 Add configure support for HarfBuzz.
894
895 * builds/unix/pkg.m4: New file.
896 * builds/unix/configure.raw: Search for libharfbuzz using
897 `pkg-config'.
898 Add `--without-harfbuzz' option.
899 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
900 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
901 HarfBuzz.
902
903 * docs/INSTALL.UNIX: Document interdependency of Freetype with
904 HarfBuzz.
905
Alexei Podtelezhnikov6adda682014-02-28 09:24:26 +01009062014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
907
908 [cff] Math simplifications.
909
910 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
911 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
912
Dave Arnold0eae6eb2014-02-28 07:40:01 +01009132014-02-28 Dave Arnold <darnold@adobe.com>
914
Dave Arnold135c3fa2014-02-28 07:42:42 +0100915 [cff] Fix Savannah bug #41697, part 2.
916
917 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
918 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
919 a subroutine if no subroutines exist. This is an error but should
920 not trigger an assert. Split the assert to account for this.
921
9222014-02-28 Dave Arnold <darnold@adobe.com>
923
Dave Arnold0eae6eb2014-02-28 07:40:01 +0100924 [cff] Fix Savannah bug #41697, part 1.
925
926 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
927 invalid. In this case, it is not safe to use the length of
928 `hStemHintArray'; the exception has already been recorded in
929 `hintMask'.
930
Werner Lembergeee4ff82014-02-26 18:12:36 +01009312014-02-26 Werner Lemberg <wl@gnu.org>
932
Werner Lemberga2b5f662014-02-26 19:50:18 +0100933 [sfnt] Fix Savannah bug #41696.
934
935 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
936 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
937
9382014-02-26 Werner Lemberg <wl@gnu.org>
939
Werner Lembergeee4ff82014-02-26 18:12:36 +0100940 [winfnt] Fix Savannah bug #41694.
941
942 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
943
9442014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg9a567642014-02-26 13:08:07 +0100945
Werner Lemberg08c628d2014-02-26 14:18:03 +0100946 [cff] Fix Savannah bug #41693.
947
948 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
949
Werner Lembergeee4ff82014-02-26 18:12:36 +01009502014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg08c628d2014-02-26 14:18:03 +0100951
Werner Lemberg9a567642014-02-26 13:08:07 +0100952 [bdf] Fix Savannah bug #41692.
953
954 bdflib puts data from the input stream into a buffer in chunks of
955 1024 bytes. The data itself gets then parsed line by line, simply
956 increasing the current pointer into the buffer; if the search for
957 the final newline character exceeds the buffer size, more data gets
958 read.
959
960 However, in case the current line's end is very near to the buffer
961 end, and the keyword to compare with is longer than the current
962 line's length, an out-of-bounds read might happen since `memcmp'
963 doesn't stop properly at the string end.
964
965 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
966 stop at string ends.
967
suzuki toshiya91c7a972014-02-17 16:38:31 +09009682014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
969
970 [autofit] Fix `make multi' compilation.
971
suzuki toshiyacc9a0c22014-02-17 16:43:54 +0900972 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
suzuki toshiya91c7a972014-02-17 16:38:31 +0900973
Werner Lemberg6b290fd2014-02-19 09:26:54 +01009742014-02-19 Werner Lemberg <wl@gnu.org>
975 Simon Bünzli <zeniko@gmail.com>
976
977 Fix Savannah bug #32902.
978
979 Patch taken from
980
981 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
982
983 with slight modifications.
984
985 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
986 handle fonts that incorrectly use \r at the beginning of an eexec
987 block.
988
Simon Bünzlidf14e6c2014-02-19 08:42:52 +01009892014-02-19 Simon Bünzli <zeniko@gmail.com>
990
991 Fix Savannah bug #41590.
992
993 * src/type1/t1load.c (parse_encoding): Protect against invalid
994 number.
995
Dave Arnold89a94d42014-02-12 23:45:47 +01009962014-02-12 Dave Arnold <darnold@adobe.com>
997
998 [cff] Optimize by using `FT_MulDiv'.
999 Suggested by Alexei.
1000
1001 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
1002
Werner Lemberg85ee27a2014-02-12 23:27:41 +010010032014-02-12 Werner Lemberg <wl@gnu.org>
1004
1005 Fix Savannah bug #41465.
1006
1007 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
1008 (DISTCLEAN): Remove `freetype-config'.
1009
Sean McBride7be2a942014-02-08 13:55:38 +010010102014-02-08 Sean McBride <sean@rogue-research.com>
1011
1012 Fix clang static analyzer and compiler warnings.
1013
1014 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
1015 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
1016 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
1017 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
1018 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
1019 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
1020 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
1021 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
1022 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
1023 code.
1024
1025 * src/autofit/afmodule.c (af_property_get_face_globals,
1026 af_property_set, af_property_get), src/base/ftbitmap.c
1027 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
1028
1029 * src/base/ftobjs.c (ft_remove_renderer): Protect against
1030 library == NULL.
1031 (ft_property_do): Make function static.
1032
1033 * src/base/ftrfork.c: Include `ftbase.h'.
1034
1035 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
1036 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
1037 (T1_Compute_Max_Advance): Avoid compiler warning.
1038
1039 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
1040 variable.
1041
Werner Lembergab98c5e2014-02-08 11:34:33 +010010422014-02-08 Werner Lemberg <wl@gnu.org>
1043
1044 Fix Windows build directories.
1045
1046 The build target is now `windows' instead of `win32'.
1047
1048 Problem reported by Nickolas George <darknova.clan@gmail.com>.
1049
1050 * builds/modules.mk: Don't use `win32' and `win16' (!) but
1051 `windows'.
1052
1053 * builds/windows/detect.mk, builds/windows/win32-def.mk:
1054 s/win32/windows/.
1055
Eugen Sawina8ceae42014-02-08 06:30:06 +010010562014-02-08 Eugen Sawin <esawin@mozilla.com>
1057
1058 Fix Savannah bug #41507.
1059
1060 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
1061 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
1062
Dave Arnold355b3592014-02-08 06:23:04 +010010632014-02-08 Dave Arnold <darnold@adobe.com>
1064
1065 [cff] Fix minor performance bug.
1066
1067 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
1068 calculations are now cached and not recomputed on each glyph.
1069
Werner Lemberg6dce1362014-02-05 15:40:47 +010010702014-02-05 Werner Lemberg <wl@gnu.org>
1071
1072 Fix problems with perl 5.8.8 as distributed with current MinGW.
1073
1074 * src/tools/afblue.pl: Work-around for Perl bug #63402.
1075 (string_re): Avoid `possessive quantifiers', which have been
1076 introduced in Perl version 5.10.
1077
Werner Lemberga8772912014-02-04 11:36:08 +010010782014-02-04 Werner Lemberg <wl@gnu.org>
1079
Werner Lembergd87f9a62014-02-04 16:14:09 +01001080 Fix compilation with MinGW.
1081
1082 Right now, compilation out of the box with latest MinGW is broken
1083 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
1084 cf.
1085
1086 https://sourceforge.net/p/mingw/bugs/2024/
1087 https://sourceforge.net/p/mingw/bugs/2046/
1088
1089 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
1090
10912014-02-04 Werner Lemberg <wl@gnu.org>
1092
Werner Lemberga8772912014-02-04 11:36:08 +01001093 [autofit] Minor fix.
1094
1095 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
1096 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
1097 of alternative standard characters.
1098 This also fixes a compilation warning in non-debug mode.
1099
Werner Lembergee3778d2014-02-03 11:16:47 +010011002014-02-03 Werner Lemberg <wl@gnu.org>
1101
1102 [cff] Fix Savannah bug #41363.
1103
1104 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
1105 parameter check.
1106 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
1107 we are scaling the outline.
1108 (cf2_getPpemY): Remove problematic assertion.
1109
Werner Lemberga3364002014-01-26 09:45:23 +010011102014-01-26 Werner Lemberg <wl@gnu.org>
1111
1112 [autofit] Introduce two more slots for standard characters.
1113
1114 This is useful for OpenType features like `c2sc' (caps to small
1115 caps) that don't have lowercase letters by definition, or other
1116 features that mainly operate on numerals.
1117
1118 * src/autofit/afscript.h: Add more standard characters.
1119
1120 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
1121 (AF_ScriptClassRec): Add members to hold two more standard
1122 characters.
1123 (AF_DEFINE_SCRIPT_CLASS): Updated.
1124
1125 * src/autofit/afglobal.c, src/autofit/afglobal.h,
1126 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
1127 Update use of `SCRIPT' macro.
1128
1129 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
1130 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
1131 standard characters.
1132
Werner Lembergeb7691c2014-01-24 19:04:22 +010011332014-01-24 Werner Lemberg <wl@gnu.org>
1134
1135 Fix Savannah bug #41320.
1136
1137 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
1138 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
1139
Werner Lemberg8b281f82014-01-23 08:14:53 +010011402014-01-23 Werner Lemberg <wl@gnu.org>
1141
Werner Lemberg752f3912014-01-23 09:14:25 +01001142 Fix Savannah bug #41310.
1143
1144 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
1145 Don't check metrics, which this format doesn't have.
1146 This is another correction to the commit from 2013-11-21.
1147
11482014-01-23 Werner Lemberg <wl@gnu.org>
1149
Werner Lemberg8b281f82014-01-23 08:14:53 +01001150 Fix Savannah bug #41309.
1151
1152 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
1153 of `T1_ToFixedArray'.
1154
1155 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
1156 `t1_parse_font_matrix'.
1157
1158 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
1159 `t1_parse_font_matrix'.
1160 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
1161
1162 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
1163 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
1164
Werner Lembergff8dc312014-01-22 09:19:57 +010011652014-01-22 Werner Lemberg <wl@gnu.org>
1166
1167 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
1168
Werner Lemberg6a700782014-01-16 08:55:40 +010011692014-01-16 Werner Lemberg <wl@gnu.org>
1170
1171 [autofit] Improve tracing of style coverages.
1172
1173 * include/internal/fttrace.h: Add `afglobal' for tracing style
1174 coverages.
1175
1176 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
1177 (FT_COMPONENT): Define.
1178 (af_face_globals_compute_style_coverage): Trace `gstyles' array
1179 data.
1180
Werner Lemberg7cbfdff2014-01-09 07:26:06 +010011812014-01-09 Werner Lemberg <wl@gnu.org>
1182
1183 Fix Savannah bug #41158.
1184
1185 * builds/unix/install.mk (install): Create man page directory.
1186
Chongyu Zhu94c66942014-01-08 08:52:59 +010011872014-01-08 Chongyu Zhu <lembacon@gmail.com>
1188
1189 [arm] Fix Savannah bug #41138, part 2.
1190
1191 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
1192 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
1193 preprocessor conditionals for `add.w'.
1194
Werner Lembergc46fa862014-01-08 08:45:40 +010011952014-01-08 Werner Lemberg <wl@gnu.org>
1196
1197 [autofit] Fix Savannah bug #41138, part 1.
1198
1199 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
1200 enumeration names for generated `#else'.
1201
1202 * src/autofit/afblue.h: Regenerated.
1203
Werner Lemberg3e5a3742014-01-06 07:53:10 +010012042014-01-06 Werner Lemberg <wl@gnu.org>
1205
1206 Add manual page for `freetype-config'.
1207 Contributed by Nis Martensen <nis.martensen@web.de>.
1208
1209 * docs/freetype-config.1: New file.
1210
1211 * builds/unix/unix-def.in (mandir): Define.
1212 * builds/unix/install.mk (install, uninstall): Handle manpage.
1213
Werner Lemberg991cbcc2014-01-05 13:24:56 +010012142014-01-05 Werner Lemberg <wl@gnu.org>
1215
1216 [autofit] Minor fixes for `afblue.pl'.
1217
1218 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
1219 <Handling #endif>: Use proper indentation for generated `#else'.
1220
1221 * src/autofit/afblue.h: Regenerated.
1222
Werner Lemberg0d977442014-01-04 11:46:34 +010012232014-01-04 Werner Lemberg <wl@gnu.org>
1224
1225 [autofit] Fix Indic scripts.
1226
1227 Split the single, incorrect Indic entry into separate scripts so
1228 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
1229 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
1230 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
1231 entries for Meetai Mayak and Sharada the Unicode ranges were
1232 incorrect (and nobody has complained about that), fonts are scarce
1233 for those scripts, and the Indic auto-hinter support is rudimentary
1234 anyways.
1235
1236 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
1237 AF_CONFIG_OPTION_CJK.
1238
1239 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
1240 Use it, together with AF_CONFIG_OPTION_INDIC and
1241 AF_CONFIG_OPTION_CJK, to update.
1242
1243 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
1244 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
1245 Sort entries by tags.
1246
Werner Lemberg5c7f5502014-01-03 10:48:26 +010012472014-01-03 Werner Lemberg <wl@gnu.org>
1248
Werner Lembergecdb0e32014-01-03 20:49:31 +01001249 [autofit] Thinko.
1250
1251 * src/autofit/hbshim.c (af_get_char_index): Similar to
1252 `af_get_coverage', reject glyphs which are not substituted.
1253
12542014-01-03 Werner Lemberg <wl@gnu.org>
1255
Werner Lemberga42f9182014-01-03 18:29:41 +01001256 [autofit] Fix handling of default coverages.
1257
Werner Lemberg1b5bc892014-01-03 18:33:24 +01001258 With this commit, the implementation of coverage handling is
1259 completed.
1260
1261 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
1262 do.
1263 Reject coverages which don't contain appropriate glyphs for blue
1264 zones.
1265
12662014-01-03 Werner Lemberg <wl@gnu.org>
1267
1268 [autofit] Fix handling of default coverages.
1269
Werner Lemberga42f9182014-01-03 18:29:41 +01001270 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1271 First handle non-default coverages, then the default coverage of the
1272 default script, and finally the other default coverages.
1273
12742014-01-03 Werner Lemberg <wl@gnu.org>
1275
Werner Lembergf45749b2014-01-03 18:09:36 +01001276 [autofit] Fix scaling of HarfBuzz shaping.
1277
1278 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
1279
12802014-01-03 Werner Lemberg <wl@gnu.org>
1281
Werner Lemberg5c7f5502014-01-03 10:48:26 +01001282 [autofit] Better ftgrid support.
1283
1284 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
1285 parameters `is_blue' and `blue_offset'.
1286
Werner Lemberg73cc8332014-01-01 07:10:36 +010012872014-01-01 Werner Lemberg <wl@gnu.org>
1288
Werner Lemberg55cd7e02014-01-02 13:07:48 +01001289 [autofit] Remove some styles.
1290
1291 * src/autofit/afcover.h: Remove coverages for alternative fractions,
1292 denominators, numerators, and fractions.
1293
1294 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
1295
12962014-01-01 Werner Lemberg <wl@gnu.org>
1297
Werner Lembergc973e672014-01-01 16:34:42 +01001298 [autofit] Add more styles.
1299
1300 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
1301 auxiliary macros; use them to define styles for Cyrillic, Greek, and
1302 Latin.
1303
1304 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
1305 Since those digits are used in combination with ordinary letters, it
1306 makes no sense to handle them separately.
1307
1308 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
1309 `options' parameter to 4 bits.
1310
13112014-01-01 Werner Lemberg <wl@gnu.org>
1312
Werner Lembergabb2f732014-01-01 08:00:16 +01001313 [autofit] Fix style assignments to glyphs.
1314
1315 * src/autofit/hbshim.c (af_get_coverage)
1316 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
1317 so that we can skip glyphs that have both GSUB and GPOS data.
1318
13192014-01-01 Werner Lemberg <wl@gnu.org>
1320
Werner Lemberg0950f3a2014-01-01 07:48:20 +01001321 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
1322
13232014-01-01 Werner Lemberg <wl@gnu.org>
1324
Werner Lemberg73cc8332014-01-01 07:10:36 +01001325 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
1326
1327 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
1328 Redefine to construct HarfBuzz features.
1329 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
1330
1331 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
1332 `y_offset' to adjust `best_y'.
1333
Werner Lembergc9d99472013-12-31 08:16:57 +010013342013-12-31 Werner Lemberg <wl@gnu.org>
1335
Werner Lemberg785f3852013-12-31 09:45:10 +01001336 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
1337
13382013-12-31 Werner Lemberg <wl@gnu.org>
1339
Werner Lembergc9d99472013-12-31 08:16:57 +01001340 [autofit] Fix interface of `af_get_char_index'.
1341
1342 * src/autofit/hbshim.c (af_get_char_index): Return error value.
1343 Add argument for y offset (to be used in a yet-to-come patch).
1344
1345 * src/autofit/hbshim.h, src/autofit/afcjk.c,
1346 src/autofit/aflatin.c: Updated.
1347
Werner Lemberg44aa7e02013-12-30 07:41:22 +010013482013-12-30 Werner Lemberg <wl@gnu.org>
1349
1350 [autofit] Don't combine multiple features into one set.
1351
1352 Combining them, as originally envisioned, would lead to much more
1353 complicated code, as investigations have shown meanwhile. The major
1354 drawback is that we run out of available style slots much earlier.
1355 However, this is only a theoretical issue since we don't support a
1356 large number of scripts currently.
1357
1358 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
1359 a single-element `COVERAGE' macro, sort the elements by the feature
1360 tags, and add entry for `ruby'.
1361
1362 * src/autofit/aftypes.h: Updated.
1363 * src/autofit/hbshim.c: Updated.
1364
Werner Lemberg6af01a02013-12-28 08:55:24 +010013652013-12-28 Werner Lemberg <wl@gnu.org>
1366
Werner Lemberg072dc452013-12-28 12:26:21 +01001367 [autofit] Code shuffling to reduce use of cpp macros.
1368
1369 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1370 Call `af_get_coverage' unconditionally.
1371
1372 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
1373
1374 * src/autofit/hbshim.c (af_get_coverage)
1375 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
1376
1377 * src/autofit/hbshim.h: Provide function declarations
1378 unconditionally.
1379
13802013-12-28 Werner Lemberg <wl@gnu.org>
1381
Werner Lemberg17af5862013-12-28 10:33:01 +01001382 [autofit] Add wrapper function for `FT_Get_Char_Index'.
1383
1384 Yet-to-come changes will provide HarfBuzz functionality for the new
1385 function.
1386
1387 * src/autofit/hbshim.c (af_get_char_index): New function.
1388 * src/autofit/hbshim.h: Updated.
1389
1390 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
1391 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
1392
1393 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
1394 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
1395 Updated.
1396
13972013-12-28 Werner Lemberg <wl@gnu.org>
1398
Werner Lemberg6af01a02013-12-28 08:55:24 +01001399 [autofit] Use `global' HarfBuzz font object.
1400
1401 We now use `hb_font' instead of `hb_face' since yet-to-come changes
1402 need this.
1403
1404 * src/autofit/afglobal.h: Include `hbshim.h'.
1405 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
1406 `hb_font'.
1407
1408 * src/autofit/afglobal.c (af_face_globals_new)
1409 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
1410 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
1411 `hb_font'.
1412
1413 * src/autofit/hbshim.h: Include HarfBuzz headers.
1414
1415 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
1416 headers.
1417 (af_get_coverage): Updated.
1418
Werner Lembergd32a7d32013-12-27 19:26:04 +010014192013-12-27 Werner Lemberg <wl@gnu.org>
1420
1421 [autofit] Handle `DFLT' OpenType script for coverages.
1422
1423 * include/ftautoh.h: Document new `default-script' property.
1424
1425 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
1426 type of first parameter.
1427 (script_tags): Add one more element.
1428 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
1429
1430 * src/autofit/hbshim.h: Updated.
1431
1432 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1433 Updated.
1434
1435 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
1436
1437 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
1438 member.
1439
1440 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
1441 `default-script' property.
1442 (af_autofitter_init): Updated.
1443
suzuki toshiyae2d2b152013-12-27 16:44:24 +090014442013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1445
1446 [ftrfork] Fix the face order difference between POSIX and Carbon.
1447
1448 The fragmented resources in Suitcase and .dfont should be reordered
Werner Lemberg00a7b512013-12-27 19:18:49 +01001449 when `POST' resource for Type1 is being restored, but reordering of
suzuki toshiyae2d2b152013-12-27 16:44:24 +09001450 sfnt resources induces the different face order. Now the ordering
Werner Lemberg00a7b512013-12-27 19:18:49 +01001451 is restricted to `POST' resource only, to prevent the different
1452 order issue (e.g. the face index in the fontconfig cache generated
1453 with Carbon framework is incompatible with that by FreeType 2
1454 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
1455
suzuki toshiyae2d2b152013-12-27 16:44:24 +09001456 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
1457 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
1458
1459 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
Werner Lemberg44aa7e02013-12-30 07:41:22 +01001460 `sort_by_res_id' to control the fragmented resource ordering.
Werner Lemberg00a7b512013-12-27 19:18:49 +01001461 * include/internal/ftrfork.h: Declare new switch.
1462 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
1463 resource, and disable the sorting for `sfnt' resource.
suzuki toshiyae2d2b152013-12-27 16:44:24 +09001464
Werner Lemberg5f577462013-12-25 08:50:50 +010014652013-12-25 Werner Lemberg <wl@gnu.org>
1466
1467 Fix Savannah bug #40997.
1468
1469 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
1470 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
1471 be set.
1472 * src/cff/cffobjs.c (cff_face_init): Ditto.
1473 * src/cid/cidobjs.c (cid_face_init): Ditto.
1474 * src/pcf/pcfread.c (pcf_load_font): Ditto.
1475 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
1476 * src/type1/t1objs.c (T1_Face_Init): Ditto.
1477 * src/type42/t42objs.c (T42_Face_Init): Ditto.
1478 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
1479
Werner Lembergc4e968e2013-12-21 07:23:08 +010014802013-12-21 Werner Lemberg <wl@gnu.org>
1481
Werner Lemberg19241342013-12-21 21:31:38 +01001482 [autofit] Introduce `coverages'.
1483
1484 Coverages are the interface to the HarfBuzz library to acces
1485 OpenType features for handling glyphs not addressable by the cmap.
1486
1487 Right now, compilation of HarfBuzz is only added to the development
1488 build. A solution for standard build mode will be delayed until
1489 HarfBuzz gets split into two libraries to avoid mutual dependencies
1490 between FreeType and HarfBuzz.
1491
1492 Note that this is only a first step in handling coverages, basically
1493 providing the framework only. Code for handling selected OpenType
1494 features (this is, actually using the data in `afcover.h') will
1495 follow.
1496
1497 * devel/ftoption.h, include/config/ftoption.h
1498 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
1499
1500 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
1501 New files.
1502
1503 * src/autofit/afscript.h: Add HarfBuzz script name tags.
1504
1505 * src/autofit/afstyles.h: Add default coverage enumeration values.
1506
1507 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
1508 (AF_Coverage): New enumeration (generated by `afcover.h').
1509 (AF_StyleClassRec): New member `coverage'.
1510 (AF_DEFINE_STYLE_CLASS): Updated.
1511
1512 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
1513 data.
1514
1515 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
1516 (AF_SCRIPT_FALLBACK): Renamed to ...
1517 (AF_STYLE_FALLBACK): ... this.
1518
1519 * src/autofit/afglobal.c: Include `hbshim.c'.
1520 Update use of `SCRIPT' and `STYLE' macros.
1521 (af_face_globals_compute_style_coverage)
1522 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
1523 Update.
1524
1525 * src/autofit/afmodule.h (AF_ModuleRec):
1526 s/fallback_script/fallback_style/.
1527
1528 * src/autofit/afmodule.c (af_property_set): Adapt handling of
1529 `fallback-script' property to set a fallback style.
1530 (af_property_get, af_autofitter_init): Updated.
1531
1532 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
1533
1534 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
1535
1536 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
1537 `hbshim.c'.
1538
1539 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
1540 (AUTOF_DRV_H): Add `afcover.h'.
1541
1542 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
1543 all libraries needed by FreeType.
1544
15452013-12-21 Werner Lemberg <wl@gnu.org>
1546
Werner Lembergb337fa22013-12-21 19:33:15 +01001547 Fix Savannah bug #40975 (sort of).
1548
1549 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
1550 behave the same as the Windows TrueType engine for the invalid case.
1551
15522013-12-21 Werner Lemberg <wl@gnu.org>
1553
Werner Lemberg3bf60952013-12-21 08:49:11 +01001554 [autofit] Make PIC mode work actually.
1555
1556 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
1557 enumeration values automatically generated by including `afscript.h'
1558 and friends.
1559
1560 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
1561
15622013-12-21 Werner Lemberg <wl@gnu.org>
1563
Werner Lembergbd413862013-12-21 08:14:25 +01001564 Fix PIC linking.
1565
1566 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
1567 generated function name.
1568
1569 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
1570 to ...
1571 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
1572 function name correctly corresponds to what the macro framework
1573 expects.
1574
1575 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
1576 that PIC functions are compiled also.
1577
15782013-12-21 Werner Lemberg <wl@gnu.org>
1579
Werner Lembergc4e968e2013-12-21 07:23:08 +01001580 [base] Add missing dependencies to Makefile.
1581
1582 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
1583 (BASE_H): Add `basepic.h'.
1584
Werner Lemberg974b1932013-12-20 17:26:26 +010015852013-12-20 Werner Lemberg <wl@gnu.org>
1586
Werner Lemberg8a8f3752013-12-20 18:35:35 +01001587 [autofit] Fix PIC compilation.
1588
1589 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
1590 src/autofit/aflatin.c (af_latin_metrics_init_widths)
1591 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
1592
1593 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
1594 AF_DEFINE_STYLE_CLASS.
1595
1596 * src/autofit/afpic.c: Include `afglobal.h'.
1597 (autofit_module_class_pic_init): Typo.
1598
1599 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
1600 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
1601 parameter and structure member.
1602
16032013-12-20 Werner Lemberg <wl@gnu.org>
1604
Werner Lemberg974b1932013-12-20 17:26:26 +01001605 [autofit] Introduce `styles'.
1606
1607 This is the new top-level structure for handling glyph input data;
1608 scripts are now defined separately.
1609
1610 * src/autofit/aftypes.h (SCRIPT): Updated.
1611 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
1612 members to ...
1613 (AF_Style_ClassRec): ... this new structure.
1614 (AF_Style): New enumeration.
1615 (AF_StyleMetricsRec): Replace `script' enumeration with
1616 `style_class' pointer.
1617 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
1618 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
1619
1620 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
1621 * src/autofit/afscript.h: Updated.
1622
1623 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
1624 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
1625
1626 * src/autofit/afglobal.c (SCRIPT): Updated.
1627 (STYLE): Redefine macro to load `afstyles.h'.
1628 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
1629 (af_style_names): ... this array.
1630 (af_face_globals_compute_script_coverage): Renamed to...
1631 (af_face_globals_compute_style_coverage): ... this.
1632 Updated.
1633 (af_face_globals_new, af_face_globals_free,
1634 af_face_globals_get_metrics): Updated.
1635
1636 * src/autofit/afglobal.h (SCRIPT): Updated.
1637 (STYLE): Redefine macro to load `afstyles.h'.
1638 (AF_SCRIPT_FALLBACK): Update definition. This will get more
1639 refinements with later on.
1640 (AF_SCRIPT_UNASSIGNED): Replace with...
1641 (AF_STYLE_UNASSIGNED): ... this macro.
1642 (AF_FaceGlobalsRec): Updated.
1643
1644 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
1645 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
1646 af_latin_hint_edges): Updated.
1647
1648 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
1649 (af_ltn2_uniranges): Removed.
1650
1651 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1652 Updated.
1653
1654 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
1655 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
1656 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
1657 members.
1658
1659 * src/autofit/afranges.h: Updated.
1660
1661 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
1662
Werner Lembergd8324572013-12-19 15:45:24 +010016632013-12-19 Werner Lemberg <wl@gnu.org>
1664
1665 [autofit] Factor scripts and uniranges out of writing system files.
1666
1667 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
1668
1669 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
1670 parameters, taking data from the writing system files.
1671
1672 * src/autofit/aftypes.h: Updated.
1673
1674 * src/autofit/afglobal.c: Include `afranges.h'.
1675 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
1676 * src/autofit/afglobal.c: Include `afranges.h'.
1677 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
1678
1679 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
1680 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
1681 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
1682 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
1683 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
1684
1685 * src/autofit/afpic.c: Updated.
1686
1687 * src/autofir/autofit.c: Include `afranges.c'.
1688 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
1689
Werner Lemberg9a354552013-12-18 10:36:06 +010016902013-12-18 Werner Lemberg <wl@gnu.org>
1691
Werner Lemberg73f31982013-12-19 15:24:17 +01001692 [autofit] More code orthogonality.
1693
1694 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
1695 pointer to an `AF_ScriptClass' structure with `script' index of type
1696 `AF_Script'.
1697 Move some code around.
1698
1699 * src/autofit/afcjk.c: Include `afpic.h'.
1700 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
1701 af_cjk_hint_edges): Updated.
1702
1703 * src/autofit/aflatin.c: Include `afpic.h'.
1704 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
1705 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
1706
1707 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
1708
1709 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1710 Updated.
1711
17122013-12-18 Werner Lemberg <wl@gnu.org>
1713
Werner Lemberg3f91cb32013-12-18 12:59:35 +01001714 [autofit] s/ScriptMetrics/StyleMetrics/.
1715
17162013-12-18 Werner Lemberg <wl@gnu.org>
1717
Werner Lemberg4fccc212013-12-18 12:53:01 +01001718 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
1719
17202013-12-18 Werner Lemberg <wl@gnu.org>
1721
Werner Lembergf4df4072013-12-18 10:39:30 +01001722 [autofit] s/gscripts/gstyles/.
1723
17242013-12-18 Werner Lemberg <wl@gnu.org>
1725
Werner Lemberg9a354552013-12-18 10:36:06 +01001726 [autofit] s/glyph_scripts/glyph_styles/.
1727
1728 This is the first commit of a series to create a new top-level
1729 structure (a `style') for handling scripts, writing_systems, and
1730 soon-to-be-added coverages.
1731
Werner Lemberg7a5fc2f2013-12-17 13:29:53 +010017322013-12-17 Werner Lemberg <wl@gnu.org>
1733
1734 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
1735
Infinality8bb09b02013-12-11 09:01:13 +010017362013-12-11 Infinality <infinality@infinality.net>
1737
1738 [truetype] Simplify logic of rendering modes.
1739
1740 This patch unifies the subpixel and non-subpixel cases.
1741
1742 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
1743 `grayscale_hinting'; all code should refer to `grayscale' instead.
1744 Remove unused `native_hinting' member.
1745 Rename `subpixel_hinting' member to `subpixel.
1746
1747 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
1748 (tt_loader_init): Updated.
1749
1750 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
1751 Updated.
1752
Werner Lemberge9d95aa2013-12-11 07:48:51 +010017532013-12-11 Werner Lemberg <wl@gnu.org>
1754
1755 [documentation] Add section how to include FreeType header files.
1756 Problem reported by David Kastrup <dak@gnu.org>.
1757
1758 Surprisingly, a description how to do that was completely missing in
1759 the API reference.
1760
1761 * include/freetype.h, include/ftchapters.h: New documentation
1762 section `header_inclusion'.
1763
Werner Lemberg05c786d2013-12-10 08:38:57 +010017642013-12-10 Werner Lemberg <wl@gnu.org>
1765
Werner Lemberg91932592013-12-10 13:24:07 +01001766 [autofit] s/DFLT/NONE/, s/dflt/none/.
1767
17682013-12-10 Werner Lemberg <wl@gnu.org>
1769
Werner Lemberg45244f82013-12-10 13:18:11 +01001770 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
1771
17722013-12-10 Werner Lemberg <wl@gnu.org>
1773
Werner Lemberg69d1a362013-12-10 10:12:27 +01001774 [truetype] Fix scaling of vertical phantom points.
1775
1776 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
1777 pp4.x also.
1778
17792013-12-10 Werner Lemberg <wl@gnu.org>
1780
Werner Lemberg05c786d2013-12-10 08:38:57 +01001781 [truetype] Fix positioning of composite glyphs.
1782 Problem reported by Nigel Tao <nigeltao@golang.org>.
1783
1784 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
1785 the glyph (component) by a fractional value computed from the LSB
1786 phantom point. This is wrong, since the horizontal phantom points
1787 get rounded horizontally later on.
1788
Werner Lembergdd8050a2013-12-08 23:14:46 +010017892013-12-08 Werner Lemberg <wl@gnu.org>
1790
1791 * Version 2.5.2 released.
1792 =========================
1793
1794
1795 Tag sources with `VER-2-5-2'.
1796
1797 * docs/VERSION.DLL: Update documentation and bump version number to
1798 2.5.2.
1799
1800 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1801 builds/windows/vc2005/index.html,
1802 builds/windows/vc2008/freetype.vcproj,
1803 builds/windows/vc2008/index.html,
1804 builds/windows/vc2010/freetype.vcxproj,
1805 builds/windows/vc2010/index.html,
1806 builds/windows/visualc/freetype.dsp,
1807 builds/windows/visualc/freetype.vcproj,
1808 builds/windows/visualc/index.html,
1809 builds/windows/visualce/freetype.dsp,
1810 builds/windows/visualce/freetype.vcproj,
1811 builds/windows/visualce/index.html,
1812 builds/wince/vc2005-ce/freetype.vcproj,
1813 builds/wince/vc2005-ce/index.html,
1814 builds/wince/vc2008-ce/freetype.vcproj,
1815 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
1816
Werner Lembergec8853c2014-03-06 19:13:45 +01001817 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01001818
1819 * builds/unix/configure.raw (version_info): Set to 17:1:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01001820 * CMakeLists.txt (VERSION_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01001821 * docs/CHANGES: Updated.
1822
Werner Lemberg98d185c2013-12-07 09:26:55 +010018232013-12-07 Werner Lemberg <wl@gnu.org>
1824
1825 [truetype] Next round in phantom point handling.
1826
1827 Greg Hitchcock provided very interesting insights into the
1828 complicated history of the horizontal positions of the TSB and BSB
1829 phantom points.
1830
1831 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
1832 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
1833 `grayscale_hinting' flags as conditionals for the x position of TSB
1834 and BSB.
1835
Werner Lembergfcdb7842013-12-05 15:53:27 +010018362013-12-05 Werner Lemberg <wl@gnu.org>
1837
1838 * builds/freetype.mk (FT_CC): Removed. Unused.
1839
Werner Lemberg64b395c2013-12-04 06:18:56 +010018402013-12-04 Werner Lemberg <wl@gnu.org>
1841
1842 [sfnt] Fix handling of embedded bitmap strikes.
1843
1844 This corrects the commit from 2013-11-21. Problem reported by
1845 Andrey Panov <panov@canopus.iacp.dvo.ru>.
1846
1847 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
1848 detect excessive bytes for bit-aligned bitmaps.
1849
Werner Lembergbdd5e752013-12-03 06:57:02 +010018502013-12-03 Werner Lemberg <wl@gnu.org>
1851
Werner Lembergc2b47532013-12-03 07:01:57 +01001852 [truetype] Remove dead code.
1853
1854 Reported by Nigel Tao <nigeltao@golang.org>.
1855
1856 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
1857 `preserve_pps' field.
1858 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
1859
18602013-12-03 Werner Lemberg <wl@gnu.org>
1861
Werner Lembergbdd5e752013-12-03 06:57:02 +01001862 [truetype] Fix phantom point handling.
1863
1864 This is a further improvement to the changes from 2013-11-06.
1865
1866 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
1867 are rounded horizontally, vertical ones are rounded vertically.
1868 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
1869 points in pre-ClearType mode is zero, as shown in the OpenType
1870 specification.
1871
Werner Lemberg64872a52013-12-02 07:51:17 +010018722013-12-02 Werner Lemberg <wl@gnu.org>
1873
1874 [truetype] Fix change from 2013-11-20.
1875
1876 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
1877
1878 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
1879 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
1880 `IS_HINTED' clause.
1881 Also remove redundant check using `maxSizeOfInstructions' – in
1882 simple glyphs, the bytecode data comes before the outline data, and
1883 a validity test for this is already present.
1884
Werner Lemberg52166ab2013-11-27 10:10:16 +010018852013-11-27 Werner Lemberg <wl@gnu.org>
1886
1887 [autofit] Fix use of dumping functions in `ftgrid' demo program.
1888
1889 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
1890 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1891 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
1892 handle output to stdout.
1893 Use AF_DUMP.
1894 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1895 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
1896
Werner Lemberg3aee4292013-11-25 00:28:11 +010018972013-11-25 Werner Lemberg <wl@gnu.org>
1898
1899 * Version 2.5.1 released.
1900 =========================
1901
1902
1903 Tag sources with `VER-2-5-1'.
1904
1905 * docs/VERSION.DLL: Update documentation and bump version number to
1906 2.5.1.
1907
1908 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1909 builds/windows/vc2005/index.html,
1910 builds/windows/vc2008/freetype.vcproj,
1911 builds/windows/vc2008/index.html,
1912 builds/windows/vc2010/freetype.vcxproj,
1913 builds/windows/vc2010/index.html,
1914 builds/windows/visualc/freetype.dsp,
1915 builds/windows/visualc/freetype.vcproj,
1916 builds/windows/visualc/index.html,
1917 builds/windows/visualce/freetype.dsp,
1918 builds/windows/visualce/freetype.vcproj,
1919 builds/windows/visualce/index.html,
1920 builds/wince/vc2005-ce/freetype.vcproj,
1921 builds/wince/vc2005-ce/index.html,
1922 builds/wince/vc2008-ce/freetype.vcproj,
1923 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
1924
1925 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
1926
1927 * builds/unix/configure.raw (version_info): Set to 17:0:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01001928 * CMakeLists.txt (VERSION_PATCH): Set to 1.
Werner Lemberg3aee4292013-11-25 00:28:11 +01001929 * docs/CHANGES, docs/release: Updated.
1930
Werner Lemberg9326caf2013-11-23 23:59:25 +010019312013-11-23 Werner Lemberg <wl@gnu.org>
1932
Werner Lemberg063ee6b2013-11-24 00:19:17 +01001933 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
1934
1935 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
1936 TRICK_NAMES_COUNT): Updated.
1937 (trick_names): Add family name for the two fonts.
1938
19392013-11-23 Werner Lemberg <wl@gnu.org>
1940
Werner Lemberg9326caf2013-11-23 23:59:25 +01001941 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
1942
Werner Lemberg427b1762013-11-21 13:10:56 +010019432013-11-21 Werner Lemberg <wl@gnu.org>
1944
Werner Lemberg9326caf2013-11-23 23:59:25 +01001945 [sfnt] Typo.
Werner Lemberg8af2a1c2013-11-21 13:13:12 +01001946
1947 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
1948
1949 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
1950 value if the font lacks an `OS/2' table.
1951
19522013-11-21 Werner Lemberg <wl@gnu.org>
1953
Werner Lemberg64b395c2013-12-04 06:18:56 +01001954 [sfnt] Improve handling of buggy embedded bitmap strikes.
Werner Lemberg427b1762013-11-21 13:10:56 +01001955
1956 We are now able to successfully load `AppleMyoungJo.ttf'.
1957 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
1958
1959 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
1960 format.
1961
Werner Lemberg28626862013-11-20 21:06:18 +010019622013-11-20 Werner Lemberg <wl@gnu.org>
1963
1964 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
1965
1966 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
1967
1968 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
1969
1970 for details.
1971
1972 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
1973 tables also for setting `autohint'.
1974
1975 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
1976 `TT_Process_Composite_Glyph' for handling unreliable values of
1977 `maxSizeOfInstructions'.
1978
Werner Lembergbc25de62013-11-16 07:52:20 +010019792013-11-16 Werner Lemberg <wl@gnu.org>
1980
1981 [sfnt] Fix `OS/2' table version 5 support.
1982
1983 We now follow the `official' announcement from Microsoft (on the
1984 OpenType mailing list, which unfortunately hasn't a public archive).
1985
1986 * include/freetype/tttables.h (TT_OS2):
1987 s/usLowerPointSize/usLowerOpticalPointSize/,
1988 s/usUpperPointSize/usUpperOpticalPointSize/.
1989
1990 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
1991 default values.
1992
Werner Lembergfae38202013-11-13 08:55:46 +010019932013-11-13 Werner Lemberg <wl@gnu.org>
1994
Werner Lembergc52b1292013-11-13 10:06:00 +01001995 * builds/unix/ft2unix.h: Remove. No longer necessary.
1996
1997 * builds/unix/install.mk (install): Updated.
1998
19992013-11-13 Werner Lemberg <wl@gnu.org>
2000
Werner Lembergfae38202013-11-13 08:55:46 +01002001 Simplify header file hierarchy.
2002
2003 This large patch changes the header file directory layout from
2004 `include/freetype/...' to `include/...', effectively removing one
2005 level. Since the file `ft2build.h' is also located in `include'
2006 (and it stays there even after installation), all FreeType header
2007 files are now in a single directory.
2008
2009 Applications that use (a) `freetype-config' or FreeType's
2010 `pkg-config' file to get the include directory for the compiler, and
2011 (b) the documented way for header inclusion like
2012
2013 #include <ft2build.h>
2014 #include FT_FREETYPE_H
2015 ...
2016
2017 don't need any change to the source code.
2018
2019 * include/freetype/*: Move up to...
2020 * include/*: ... this directory.
2021
2022 * builds/amiga/include/freetype/*: Move up to...
2023 * builds/amiga/include/*: ... this directory.
2024
2025 */*: Essentially do `s@/freetype/@/@' where appropriate.
2026
2027 * CMakeList.txt: Simplify.
2028 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
2029 `--cflags', return a single directory.
2030 * builds/unix/install.mk (install): No longer try to remove `cache'
2031 and `internal' subdirectories; instead, remove the `freetype'
2032 subdirectory.
2033
Werner Lembergea5c7812013-11-12 08:55:26 +010020342013-11-12 Werner Lemberg <wl@gnu.org>
2035
2036 [truetype] Fix last `truetype' commit.
2037
2038 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
2039 Return error value.
2040 (load_truetype_glyph): Updated.
2041
Werner Lemberg78333282013-11-10 06:26:52 +010020422013-11-10 Werner Lemberg <wl@gnu.org>
2043
2044 * docs/CMAKE: New dummy file.
2045
Dave Arnolddd213012013-11-08 10:52:51 +010020462013-11-08 Dave Arnold <darnold@adobe.com>
2047
2048 [cff] Fix for hints that touch.
2049
2050 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
2051 finding index value of insertion point.
2052
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +010020532013-11-06 Werner Lemberg <wl@gnu.org>
2054
Werner Lemberg5e225b72013-11-06 08:41:59 +01002055 [truetype] Fix handling of phantom points in composite glyphs.
2056 Problem reported by Nigel Tao <nigeltao@golang.org>.
2057
2058 This is a follow-up commit to the previous one.
2059
2060 * src/truetype/ttgload.c (load_truetype_glyph): Call
2061 `tt_get_metrics' after loading the glyph header.
2062
20632013-11-06 Werner Lemberg <wl@gnu.org>
2064
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +01002065 [truetype] Improve emulation of vertical metrics.
2066
2067 This commit also improves the start values of vertical phantom
2068 points. Kudos to Greg Hitchcock for help.
2069
2070 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
2071 `yMax' value. Replace code with fixed Microsoft definition.
2072 (tt_get_metrics): Updated.
2073 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
2074 points, taken from both the OpenType specification and private
2075 communication with Greg (which will eventually be added to the
2076 standard).
2077 Fix horizontal position of `pp3' and `pp4'.
2078
2079 * src/truetype/ttgload.h: Updated.
2080
2081 * src/truetype/ttdriver.c (tt_get_advances): Updated.
2082
2083 * docs/CHANGES: Updated.
2084
Werner Lembergc6064282013-11-05 13:29:15 +010020852013-11-05 Werner Lemberg <wl@gnu.org>
2086
Werner Lemberg50740532013-11-05 23:19:18 +01002087 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
2088 PlatformToolSet version 110 is for VC2012.
2089
2090 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
2091
20922013-11-05 Werner Lemberg <wl@gnu.org>
2093
Werner Lembergc6064282013-11-05 13:29:15 +01002094 [truetype] Correctly reset point tags for glyph components.
2095 Problem reported by Nigel Tao <nigeltao@golang.org>.
2096
2097 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
2098
Werner Lemberg35b08182013-11-02 08:28:41 +010020992013-11-02 Werner Lemberg <wl@gnu.org>
2100
Werner Lemberg7d449432013-11-02 11:36:37 +01002101 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
2102
2103 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
2104 get info on subpixel hinting.
2105
2106 * docs/CHANGES: Updated.
2107
21082013-11-02 Werner Lemberg <wl@gnu.org>
2109
Werner Lemberg35b08182013-11-02 08:28:41 +01002110 Fix Savannah bug #40451.
2111
2112 Simply apply the patch from the bug report.
2113
2114 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
2115 include/freetype/config/ftconfig.h: The used #pragma directives only
2116 work with gcc versions 4.6 and higher.
2117
Werner Lembergebf52d62013-11-01 13:26:28 +010021182013-11-01 Werner Lemberg <wl@gnu.org>
2119
Werner Lembergafa0d592013-11-01 22:27:27 +01002120 * docs/CHANGES: Updated.
2121
21222013-11-01 Werner Lemberg <wl@gnu.org>
2123
Werner Lembergebf52d62013-11-01 13:26:28 +01002124 [truetype] Minor code refactoring.
2125
2126 Two benefits: The allocated FDEF (and IDEF) array gets slightly
2127 smaller, and the `ttdebug' demo program has access to function
2128 numbers without additional costs.
2129
2130 Fortunately, no changes to FontForge are necessary – this is the
2131 only external TrueType debugger I know of, but others may exist and
2132 should check the code accordingly.
2133
2134 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
2135 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
2136 structure.
2137
2138 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
2139 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
2140 Updated.
2141
Werner Lembergee510512013-10-27 07:25:35 +010021422013-10-27 Werner Lemberg <wl@gnu.org>
2143
2144 [sfnt] Implement support for `OS/2' table version 5.
2145
2146 See
2147
2148 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
2149
2150 for the announcement.
2151
2152 * include/freetype/tttables.h (TT_OS2): Add fields
2153 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
2154 this structure only as a pointer through `FT_Get_Sfnt_Table', there
2155 shouldn't be any ABI problems.
2156
2157 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
2158
2159 * docs/CHANGES: Updated.
2160
Werner Lemberg994a8592013-10-24 08:50:34 +020021612013-10-24 Werner Lemberg <wl@gnu.org>
2162
2163 * README.git, docs/CHANGES, docs/INSTALL: Updated.
2164
John Carya0e4a732013-10-24 08:49:08 +020021652013-10-24 John Cary <cary@txcorp.com>
2166
2167 Provide cmake support.
2168
2169 * CMakeLists.txt: New file.
2170
Kenneth Miller4d87ac82013-10-23 20:10:56 +020021712013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
2172 Werner Lemberg <wl@gnu.org>
2173
2174 Provide support for x64 builds in Visual C++ project files.
2175
2176 * src/builds/win32: Renamed to...
2177 * src/builds/windows: This.
2178
2179 * src/builds/windows/vc2010/*: Updated to handle x64 target.
2180
2181 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
2182 appropriate.
2183
Werner Lemberg604838d2013-10-22 01:10:10 +020021842013-10-22 Werner Lemberg <wl@gnu.org>
2185
2186 * src/base/md5.c, src/base/md5.h: Updated to recent version.
2187
2188 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
2189
Werner Lembergdb9159c2013-10-22 10:27:50 +02002190 The canonical URL to get updates for this file is
2191
2192 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
2193
2194 as the author told me in private communication.
2195
Werner Lemberg34efe052013-10-19 21:14:40 +020021962013-10-19 Werner Lemberg <wl@gnu.org>
2197
Werner Lemberg75efc2d2013-10-19 21:46:03 +02002198 [autofit] s/SMALL_TOP/X_HEIGHT/.
2199
2200 * src/autofit/afblue.dat: Updated.
2201
2202 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2203
2204 * src/autofit/aflatin.c, src/autofit/aflatin.h,
2205 src/autofit/atlatin2.c: Updated.
2206
22072013-10-19 Werner Lemberg <wl@gnu.org>
2208
Werner Lemberg34efe052013-10-19 21:14:40 +02002209 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
2210
2211 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2212
Werner Lemberg955f6a82013-10-16 19:47:57 +020022132013-10-16 Werner Lemberg <wl@gnu.org>
2214
Werner Lemberga5f22a92013-10-17 11:08:25 +02002215 [autofit] Add description strings to script entries.
2216
2217 Currently, this is unused.
2218
2219 * src/autofit/afscript.h: Do it.
2220 * src/autofit/afglobal.c, src/autofit/afpic.c,
2221 src/autofit/aftypes.h: Updated.
2222
22232013-10-16 Werner Lemberg <wl@gnu.org>
2224
Werner Lemberg955f6a82013-10-16 19:47:57 +02002225 [autofit] Improve tracing message for extra light flag.
2226
2227 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
2228
Chongyu Zhu41632b52013-10-15 11:40:34 +020022292013-10-15 Chongyu Zhu <lembacon@gmail.com>
2230
2231 [arm] Fix thumb2 inline assembly under LLVM.
2232
2233 When using `ADD' with an immediate operand, the instruction is
2234 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
2235 immediate operand cannot exceed 4095. It will fail to compile with
2236 LLVM.
2237
2238 However, in GCC, due to some legacy compatibility considerations,
2239 `ADD.W' will be automatically emitted when the immediate operand is
2240 larger than 4095.
2241
2242 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
2243 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
2244
2245 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
2246
Werner Lembergb6695242013-10-12 10:33:04 +020022472013-10-12 Werner Lemberg <wl@gnu.org>
2248
2249 [autofit] Improve tracing of `latin' hinter.
2250
2251 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
2252 zone types.
2253 (af_latin_metrics_scale_dim): Report scaling changes due to x height
2254 alignment.
2255 Report scaled stroke width and blue zone values.
2256
Dave Arnolde845a852013-10-03 23:04:29 +020022572013-10-03 Dave Arnold <darnold@adobe.com>
2258
2259 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
2260
Werner Lemberg2c56f2a2013-10-07 22:01:00 +02002261 Note that the old code avoided using a region of the piecewise
2262 linear function where the slope was zero. The recovery was to use a
2263 different section of the function, which produced a different,
2264 incorrect amount of darkening.
2265
Darrell Bellert01af71d2013-10-02 22:04:07 +020022662013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
2267
2268 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
2269
Dave Arnold0b330452013-10-02 11:04:06 +020022702013-10-02 Dave Arnold <darnold@adobe.com>
2271
2272 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
2273
2274 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
2275 is to use a previous darkening amount when producing an unhinted,
2276 unscaled outline. This can cause autohint samples in ftgrid and
2277 ftview to be based on darkened CFF outlines instead of unhinted,
2278 undarkened ones.
2279
Dave Arnold3a2cb0f2013-09-29 16:17:02 +020022802013-09-29 Dave Arnold <darnold@adobe.com>
2281
2282 Fix Savannah bug #39295.
2283
2284 The bug was caused by switching to the initial hintmap (the one in
2285 effect when `moveto' executes) just before drawing the final element
2286 in the charstring. This ensured that the path was closed (in both
2287 Character Space and Device Space). But if the final element was a
2288 curve and if the final hintmap was different enough from the initial
2289 one, then the curve was visibly distorted.
2290
2291 The first part of the fix is to draw the final curve using the final
2292 hintmap as specified by the charstring. This corrects the
2293 distortion but does not ensure closing in Device Space. It may
2294 require the rasterizer to automatically generate an extra closing
2295 line. Depending on the hintmap differences, this line could be from
2296 zero to a couple pixels in length.
2297
2298 The second part of the fix covers the case where the charstring
2299 subpath is closed with an explicit line. We now modify that line's
2300 end point to avoid the distortion.
2301
2302 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
2303 the change are:
2304
2305 25ppem S (98)
2306 24ppem eight (52)
2307 25.5ppem p (85)
2308
2309 Curves at the *end* of a subpath are no longer distorted. However,
2310 some of these glyphs have bad hint substitutions in the middle of a
2311 subpath, and these are not affected.
2312
2313 The patch has been tested with a set of 106 fonts that shipped with
2314 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
2315 Google Fonts. There are 1.5 million glyphs, of which some 20k are
2316 changed with the fix. A sampling of a few hundred of these changes
2317 have been examined more closely, and the changes look good (or at
2318 least acceptable).
2319
2320 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
2321 to indicate that we synthesize a closepath line.
2322
2323 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
2324 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
2325 `lineto' operator) and adjust hint zone.
2326 For synthesized closing lines, use end point in first hint zone.
2327 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
2328 particular, shift the detection of zero-length lines from character
2329 space to device space.
2330 (cf2_glyphpath_closeOpenPath): Remove assertion.
2331 Updated.
2332
Werner Lembergb75a8b82013-09-25 09:46:36 +020023332013-09-25 Werner Lemberg <wl@gnu.org>
2334
2335 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
2336
suzuki toshiyaac0f4452013-09-25 10:57:17 +090023372013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2338
2339 [bdf, pcf] Refuse non-zero face_index.
Werner Lemberg964317e2013-09-25 09:22:40 +02002340
suzuki toshiyaac0f4452013-09-25 10:57:17 +09002341 Suggested by Akira Tagoh, see
2342
2343 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
2344
Werner Lemberg964317e2013-09-25 09:22:40 +02002345 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
2346 error if the font could be opened but non-zero `face_index' is
2347 given.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09002348 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
2349
2350 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
Werner Lemberg964317e2013-09-25 09:22:40 +02002351 macro for `face_index' because it is validated later.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09002352
Werner Lemberg4de77872013-09-23 22:10:08 +020023532013-09-23 Werner Lemberg <wl@gnu.org>
2354
2355 Fix Savannah bug #40090.
2356
2357 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
2358 306f8c5d (from 2013-08-25) affecting this function.
2359
Werner Lemberg5a4c5a52013-09-22 22:37:26 +020023602013-09-22 Werner Lemberg <wl@gnu.org>
2361
2362 [autofit] Disunify Cyrillic and Greek handling from Latin.
2363
2364 * src/autofit/afscript.h: Add Cyrillic and Greek.
2365
2366 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
2367 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
2368 (AF_BLUE_STRINGSET_LATN): Fix typo.
2369 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2370
2371 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
2372 arrays.
2373 (af_grek_script_class, af_cyrl_script_class): New scripts.
2374 * src/autofit/aflatin.h: Updated.
2375
Werner Lemberg2cca9662013-09-20 07:23:34 +020023762013-09-20 Werner Lemberg <wl@gnu.org>
2377
2378 * docs/CHANGES: Updated.
2379
Behdad Esfahbod31e726d2013-09-20 07:20:53 +020023802013-09-20 Behdad Esfahbod <behdad@behdad.org>
2381
2382 Fix vertical size of emboldened glyphs.
2383
2384 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
2385
2386 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
2387 also.
2388
Alexei Podtelezhnikov52381c12013-09-11 23:25:56 -040023892013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2390
2391 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
2392 algorithm description.
2393
Werner Lemberg3f542492013-09-11 23:08:31 +020023942013-09-11 Werner Lemberg <wl@gnu.org>
2395
2396 [autofit] Improve Hebrew rendering.
2397
2398 This change introduces a new blue zone property
2399 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
2400 top segments.
2401
2402 * src/autofit/afblue.dat: Fix Hebrew blue strings.
2403 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
2404
2405 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
2406
2407 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
2408
2409 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
2410 `AF_LATIN_IS_LONG_BLUE'.
2411
2412 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
2413
Werner Lemberg85a7fdf2013-08-29 21:03:05 +020024142013-08-28 Behdad Esfahbod <behdad@google.com>
2415
2416 [sfnt] Fix frame access while reading WOFF table directory.
2417
2418 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
2419 while reading the directory entries for the whole loop.
2420
24212013-08-29 Werner Lemberg <wl@gnu.org>
Werner Lembergd689d1c2013-08-29 17:53:40 +02002422 Behdad Esfahbod <behdad@google.com>
2423
2424 Implement support for WOFF containers.
2425
2426 We simply synthesize a SFNT from the WOFF, create a memory stream
2427 for the new data, and load the SFNT as usual.
2428
2429 Does NOT add any API to access WOFF metadata or private blocks.
2430
2431 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
2432 WOFF_TableRec): New structures.
2433
2434 * include/freetype/tttags.h (TTAG_wOFF): New macro.
2435
2436 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
2437 `open_face'.
2438
2439 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
2440 `FT_GZIP_H'.
2441 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
2442 writing to a stream.
2443 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
2444 (sfnt_open_font): Handle `TTAG_wOFF'.
2445 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
2446
2447 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
2448 `sfnt->init_face'.
2449
2450 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
2451 argument so that a changed stream survives.
2452 Update callers.
2453
24542013-08-28 Werner Lemberg <wl@gnu.org>
Werner Lemberge0f39ae2013-08-28 17:34:01 +02002455
Werner Lembergdc240522013-08-29 17:53:24 +02002456 [gzip] New function `FT_Gzip_Uncompress'.
2457
2458 This is modeled after zlib's `uncompress' function. We need this
2459 for WOFF support.
2460
2461 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
2462 New function.
2463
2464 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
2465
24662013-08-28 Werner Lemberg <wl@gnu.org>
2467
Werner Lemberg5195ecd2013-08-28 17:41:21 +02002468 [autofit] Fix `make multi' compilation.
2469
2470 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
2471 `afblue.h' but `aftypes.h'.
2472 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
2473
24742013-08-28 Werner Lemberg <wl@gnu.org>
2475
Werner Lemberge0f39ae2013-08-28 17:34:01 +02002476 [autofit] Fix C++ compilation.
2477
2478 * src/autofit/afglobal.c (af_face_globals_get_metrics),
2479 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
2480 (af_deva_script_class): Use proper casts.
2481
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +020024822013-08-27 Behdad Esfahbod <behdad@google.com>
2483
Behdad Esfahbodc799dd62013-08-27 21:46:03 +02002484 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
2485
24862013-08-27 Behdad Esfahbod <behdad@google.com>
2487
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +02002488 FT_Open_Face: Improve external stream handling.
2489
2490 If the font's `clazz->init_face' function wants to swap to new
2491 stream, handling of whether original stream was external could
2492 result to either memory leak or double free. Mark externality into
2493 face flags before calling `init_face' such that the clazz can handle
2494 external streams properly.
2495
2496 * src/base/ftobjs.c (FT_Open_Face): Move code to set
2497 FT_FACE_FLAG_EXTERNAL_STREAM to...
2498 (open_face): This function.
2499
Werner Lemberg5e53db22013-08-27 18:37:39 +020025002013-08-27 Werner Lemberg <wl@gnu.org>
2501
Werner Lembergbcd8c0b2013-08-27 21:36:03 +02002502 Remove `FT_SqrtFixed' function.
2503
2504 It's no longer used.
2505
2506 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
2507
25082013-08-27 Werner Lemberg <wl@gnu.org>
2509
Werner Lemberg5e53db22013-08-27 18:37:39 +02002510 [autofit] While tracing, report script names instead of ID values.
2511
2512 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
2513 New array.
2514 * src/autofit/afglobal.h: Updated.
2515
2516 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
2517 af_cjk_hint_edges): Use `af_script_names'.
2518 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
2519 af_latin_hint_edges): Ditto.
2520
Werner Lemberg92f5a042013-08-26 09:22:27 +020025212013-08-26 Werner Lemberg <wl@gnu.org>
2522
Werner Lemberg278f64b2013-08-26 20:20:03 +02002523 [autofit] Report used script while hinting a glyph.
2524
2525 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
2526 (af_latin_hint_edges): Implement it.
2527
25282013-08-26 Werner Lemberg <wl@gnu.org>
2529
Werner Lemberg371f5c32013-08-26 20:11:24 +02002530 [autofit] Add support for Hebrew script.
2531
2532 * src/autofit/afblue.dat: Add blue strings for Hebrew.
2533 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2534
2535 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
2536 (af_hebr_script_class): New script.
2537 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
2538
25392013-08-26 Werner Lemberg <wl@gnu.org>
2540
Werner Lemberg098121d2013-08-26 18:54:05 +02002541 [autofit] Improve tracing messages.
2542
2543 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
2544 ID in tracing message.
2545 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
2546 loop.
2547 Improve tracing messages.
2548 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
2549 `num_actions' to count hinting actions.
2550 Improve tracing messages.
2551
2552 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
2553 script ID in tracing message.
2554 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
2555 messages.
2556
25572013-08-26 Werner Lemberg <wl@gnu.org>
2558
Werner Lembergffee64a2013-08-26 12:55:48 +02002559 Better tracing of loaded glyphs.
2560
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002561 Previously, the loading of a glyph was traced at level 4, if at all.
Werner Lembergffee64a2013-08-26 12:55:48 +02002562 With this change, all font loading routines emit a tracing message
2563 at level 1, making it easier to select tracing output (for example
2564 using F2_DEBUG="any:1 afhints:7 aflatin:7").
2565
2566 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
2567 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
2568 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
2569 messages.
2570 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
2571 message.
2572 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
2573 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
2574 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
2575 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
2576 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
2577 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
2578
25792013-08-26 Werner Lemberg <wl@gnu.org>
2580
Werner Lemberg33655a92013-08-26 09:58:50 +02002581 [autofit] Fix script selection.
2582
2583 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
2584 `AF_SCRIPT_DFLT', not value 0.
2585 Simplify code.
2586
2587 * src/autofit/afscript.h: Sort by script name.
2588
25892013-08-26 Werner Lemberg <wl@gnu.org>
2590
Werner Lemberg92f5a042013-08-26 09:22:27 +02002591 [autofit] Make `dummy' hinter work as expected.
2592
2593 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
2594 information.
2595 (af_dummy_hints_apply): Scale the glyphs.
2596
Werner Lemberg8b8be782013-08-25 08:01:41 +020025972013-08-25 Werner Lemberg <wl@gnu.org>
2598
Werner Lembergc1eb4452013-08-25 19:47:26 +02002599 [autofit] Make `cjk' module use blue stringsets.
2600
2601 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
2602 (af_cjk_hani_blue_chars): Removed.
2603 (AF_CJK_BLUE_TYPE_*): Removed.
2604 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
2605 AF_BLUE_STRING_MAX_LEN.
2606 Change loops to use offsets (in file `afblue.h') into the new arrays
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002607 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
Werner Lembergc1eb4452013-08-25 19:47:26 +02002608 Instead of three dimensions (as used in the old blue string array)
2609 we now use properties to do the same, saving one loop nesting level.
2610
2611 * src/autofit/afcjk.h: Remove old enumeration values superseded by
2612 the new data in `afblue.h'.
2613 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
2614 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
2615 `af_cjk_metrics_init_blues'.
2616 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
2617 (AF_CJK_BLUE_IS_TOP): Renamed to...
2618 (AF_CJK_BLUE_TOP): This.
2619 (AF_CJK_MAX_BLUES): Remove.
2620 (AF_CJKAxisRec): Updated.
2621
26222013-08-25 Werner Lemberg <wl@gnu.org>
2623
Werner Lemberg5c4a23a2013-08-25 19:29:07 +02002624 [autofit] Typo.
2625
2626 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
2627 cast.
2628
26292013-08-25 Werner Lemberg <wl@gnu.org>
2630
Werner Lemberg306f8c52013-08-25 13:07:08 +02002631 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
2632
2633 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
2634 messages.
2635 (af_cjk_metrics_init_blues): Don't pass blue string array as
2636 argument but use the global array directly.
2637 Use `outline' directly.
2638 Update and add tracing messages.
2639 (af_cjk_metrics_init): Simplify code.
2640 (af_cjk_metrics_scale_dim): Improve tracing message.
2641 (af_cjk_metrics_scale): Synchronize.
2642
2643 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
2644 af_latin_metrics_init_blues): Improve and add tracing messages.
2645
26462013-08-25 Werner Lemberg <wl@gnu.org>
2647
Werner Lemberg0975d682013-08-25 08:37:47 +02002648 [autofit] Make `latin' module use blue stringsets.
2649
2650 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
2651 (af_latin_blue_chars): Removed.
2652 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
2653 with AF_BLUE_STRING_MAX_LEN.
2654 Change loops to use offsets (in file `afblue.h') into the new arrays
2655 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
2656 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
2657
2658 * src/autofit/aflatin.h: Remove old enumeration values superseded by
2659 the new data in `afblue.h'.
2660 (AF_LATIN_IS_TOP_BLUE): Updated definition.
2661 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
2662 (AF_LATIN_MAX_BLUES): Remove.
2663 (AF_LatinAxisRec): Updated.
2664
26652013-08-25 Werner Lemberg <wl@gnu.org>
2666
Werner Lembergdb3e5b92013-08-25 08:23:22 +02002667 [autofit] Add blue stringsets.
2668
2669 * src/autofit/aftypes.h: Include `afblue.h'.
2670 (AF_ScriptClassRec): Add `blue_stringset' field.
2671 (AF_DEFINE_SCRIPT_CLASS): Updated.
2672
2673 * src/autofit/autofit.c: Include `afblue.c'.
2674
2675 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
2676 (af_dflt_script_class), src/autofit/afindic.c
2677 (af_deva_script_class), src/autofit/aflatin.c
2678 (af_latn_script_class), src/autofit/aflatin2.c
2679 (af_ltn2_script_class): Updated.
2680
2681 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
2682
26832013-08-25 Werner Lemberg <wl@gnu.org>
2684
Werner Lemberg8b8be782013-08-25 08:01:41 +02002685 [autofit] Introduce data file for blue strings.
2686
2687 The idea is to have a central file which gets processed by a Perl
2688 script to create proper `.c' and `.h' files using templates. There
2689 are two other reasons to do that:
2690
2691 . The data file should be easily readable. We use UTF-8 encoding
2692 which then gets converted to single bytes.
2693
2694 . Since the number of supported scripts will increase soon, the
2695 current usage of blue string arrays is a waste of space. Using
2696 the Perl script it is possible to imitate jagged arrays,
2697 defining enumeration constants as offsets into the arrays.
2698
2699 This commit only adds files without changing any functionality.
2700
2701 * src/autofit/afblue.dat: New data file.
2702 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
2703
2704 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
2705 for...
2706 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
2707 To avoid a dependency on Perl, we add them too.
2708
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -040027092013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2710
Werner Lemberg71c0ad62013-08-27 21:30:09 +02002711 [base] Enable new algorithm for `BBox_Cubic_Check'.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04002712
Werner Lemberg71c0ad62013-08-27 21:30:09 +02002713 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
2714 the old one.
2715 Improve comments.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04002716
Werner Lemberg6bfa2632013-08-18 18:34:05 +020027172013-08-18 Werner Lemberg <wl@gnu.org>
2718
Werner Lemberg4af44442013-08-18 18:46:30 +02002719 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
2720
27212013-08-18 Werner Lemberg <wl@gnu.org>
2722
Werner Lemberg6bfa2632013-08-18 18:34:05 +02002723 Fix Savannah bug #39804.
2724
2725 * builds/unix/configure.raw (LIBPNG): Define and export.
2726 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
2727 libpng.
2728
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -040027292013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
2730
2731 [base] Clean up BBox_Conic_Check.
2732
2733 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
2734 extremum at the segment ends, which are already within the bbox.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002735 Slightly modify calculations.
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -04002736
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -040027372013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2738
2739 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
2740
2741 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02002742 accuracy and avoid overflows.
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04002743
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -040027442013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
2745
2746 [base] Refactor experimental (disabled) BBox_Cubic_Check.
2747
2748 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04002749 as the mirror image of the maximum search implemented here...
2750 (update_max): New function.
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -04002751
John Tytgat9bcfab82013-08-06 08:55:19 +020027522013-08-06 John Tytgat <John.Tytgat@esko.com>
2753
2754 Fix Savannah bug #39702.
2755
2756 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
2757 != 0'; this stronger test is mandated by the CFF specification.
2758 Fix test for INDEX structures which have one or more empty entries
2759 at the end.
2760
Werner Lembergcc25e3a2013-08-05 08:46:15 +020027612013-08-05 Werner Lemberg <wl@gnu.org>
2762
Werner Lemberga32682f2013-08-06 00:21:46 +02002763 Fix gcc pragmas, part 2.
2764
2765 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
2766 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
2767 introduced with gcc version 4.6.
2768
27692013-08-05 Werner Lemberg <wl@gnu.org>
2770
Werner Lemberg69e524d2013-08-05 23:38:32 +02002771 Fix gcc pragmas.
2772
2773 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
2774 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
2775 pragmas within a function body.
2776
27772013-08-05 Werner Lemberg <wl@gnu.org>
2778
Werner Lemberg9e6de362013-08-05 16:37:21 +02002779 Fix Savannah bug #39700.
2780
2781 * builds/unix/ftconfig.h: Synchronize with
2782 `include/freetype/config/ftconfig.h'.
2783
2784 * builds/vms/ftconfig.h: Ditto.
2785 Make the differences to the master `ftconfig.h' file as small as
2786 possible for easier maintainance.
2787
27882013-08-05 Werner Lemberg <wl@gnu.org>
2789
Werner Lembergcc25e3a2013-08-05 08:46:15 +02002790 [autofit] Improve handling of `near' points.
2791
2792 Points which are very near to each other are now marked as such.
2793 The `weak' flag is then computed by using the `in' vector of the
2794 first and the `out' vector of the last point of a group of near
2795 points.
2796
2797 For example, this fixes the rendering of glyph `Oslash' in
2798 `Roboto-Thin.ttf'.
2799
2800 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
2801
2802 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
2803 the heuristic value `near_limit' to decide whether the current point
2804 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
2805 Store good `in' vector (of last non-near point) in
2806 `last_good_in_{x,y}' and use it as an argument to
2807 `ft_corner_is_flat' if necessary.
2808
Werner Lemberg74a9b672013-08-02 14:53:32 +020028092013-08-02 Werner Lemberg <wl@gnu.org>
2810
Werner Lemberg0d28a7d2013-08-02 22:59:43 +02002811 * include/freetype/ftcffdrv.h: Improve documentation.
2812 This is based on blog entries from David Lemon and Dave Arnold (both
2813 from Adobe) with kind permission. Dave also helped in
2814 proof-reading.
2815
28162013-08-02 Werner Lemberg <wl@gnu.org>
2817
Werner Lemberg456cc442013-08-02 20:25:21 +02002818 [autofit] Move declaration of scripts into separate file.
2819
2820 This has the benefit that we don't need to duplicate the data at
2821 different places.
2822
2823 * src/autofit/afscript.h: New file.
2824
2825 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
2826 the enumeration values.
2827
2828 * src/autofit/afglobal.c: Include `afscript.h' to get the script
2829 specific header files.
2830 (af_script_classes): Include `afscript.h' to fill this array.
2831
2832 * src/autofit/afpic.c: Include `afscript.h' to get the script
2833 specific header files.
2834 (autofit_module_class_pic_init): Include `afscript.h' for
2835 initialization.
2836 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
2837 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
2838
2839 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
2840
28412013-08-02 Werner Lemberg <wl@gnu.org>
2842
Werner Lemberg773601d2013-08-02 19:51:17 +02002843 [autofit] Move declaration of writing systems into separate file.
2844
2845 This has the benefit that we don't need to duplicate the data at
2846 different places.
2847
2848 * src/autofit/afwrtsys.h: New file.
2849
2850 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
2851 define the enumeration values.
2852
2853 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
2854 system specific header files.
2855 Include `afpic.h'.
2856 (af_writing_system_classes): Include `afwrtsys.h' to fill this
2857 array.
2858
2859 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
2860 system specific header files.
2861 (autofit_module_class_pic_init): Include `afwrtsys.h' for
2862 initialization.
2863 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
2864 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
2865 `AF_WRITING_SYSTEM_MAX' instead.
2866
28672013-08-02 Werner Lemberg <wl@gnu.org>
2868
Werner Lemberg74a9b672013-08-02 14:53:32 +02002869 [sfnt] Fix compilation with g++.
2870
2871 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
2872 cast.
2873 (Load_SBit_Png): Pacify compiler.
2874
Werner Lemberg89a529f2013-08-02 14:50:23 +020028752013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2876 Werner Lemberg <wl@gnu.org>
2877
2878 [autofit] Fix `make multi'.
2879
2880 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
2881 FT_LOCAL_ARRAY_DEF): New macros.
2882
2883 * src/autofit/afglobal.c (af_writing_system_classes,
2884 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
2885 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
2886 `af_script_classes'.
2887 * src/autofit/afloader.c: Include `afpic.h'.
2888
Werner Lemberge8ed2d62013-08-01 12:20:20 +020028892013-08-01 Werner Lemberg <wl@gnu.org>
2890
2891 Another round of cppcheck nitpicks.
2892
2893 The call was (from the top-level of the FreeType tree):
2894
2895 cppcheck --force \
2896 --enable=all \
2897 -I /usr/include \
2898 -I /usr/local/include \
2899 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
2900 -I include \
2901 -I include/freetype \
2902 -I include/freetype/config \
2903 -I include/freetype/internal \
2904 -DFT2_BUILD_LIBRARY \
2905 . &> cppcheck.log
2906
2907 using cppcheck git commit f7e93f99.
2908
2909 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
2910 macro).
2911
2912 */* Improve variable scopes.
2913 */* Remove redundant initializations which get overwritten.
2914
2915 * src/gxvalid/*: Comment out redundant code or guard it with
2916 FT_DEBUG_LEVEL_TRACE.
2917
Werner Lemberg5d6a3602013-07-30 23:17:04 +020029182013-07-30 Werner Lemberg <wl@gnu.org>
2919
Werner Lemberg72f5ff52013-07-31 22:49:29 +02002920 [autofit] Introduce `writing systems'.
2921
2922 This patch adds a new top level to the auto-hinter's script class
2923 hierarchy. It defines `writing systems' which can contain multiple
2924 scripts.
2925
2926 For example, the `latin' writing system (in file `aflatin.c') is
2927 able to support scripts like Latin, Cyrillic, Armenian, etc., which
2928 can be handled similarly.
2929
2930 Scripts are now named using four-letter OpenType tags.
2931
2932 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
2933 to...
2934 (AF_WritingSystemClassRec): This new structure. It holds pointers
2935 to functions which can be shared among related scripts.
2936 (AF_WritingSystem): New enumeration.
2937 (AF_Script): Revised values using four-letter tags.
2938 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
2939 (AF_DEFINE_SCRIPT_CLASS): Updated.
2940
2941 * src/autofit/afglobal.c (af_writing_system_classes): New global,
2942 constant array.
2943 (af_script_classes): Updated.
2944 (af_face_globals_free): Updated.
2945 Remove assertion.
2946 (af_face_globals_get_metrics): Updated.
2947
2948 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
2949 [!AF_CONFIG_OPTION_CJK]: Handle this case.
2950
2951 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
2952 Updated.
2953
2954 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
2955 initialize structures for both writing systems and scripts.
2956 * src/autofit/afpic.h: Updated.
2957 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
2958
2959 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
2960 system.
2961 (af_cjk_uniranges): Renamed to...
2962 (af_hani_uniranges): This.
2963 (af_cjk_script_class): Reduced and renamed to...
2964 (af_hani_script_class): This.
2965 * src/autofit/afcjk.h: Updated.
2966
2967 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
2968 system.
2969 (af_dummy_script_class): Reduced and renamed to...
2970 (af_dflt_script_class): This.
2971 * src/autofit/afdummy.h: Updated.
2972
2973 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
2974 system.
2975 (af_indic_uniranges): Renamed to...
2976 (af_deva_uniranges): This.
2977 (af_indic_script_class): Reduced and renamed to...
2978 (af_deva_script_class): This.
2979 * src/autofit/afcjk.h: Updated.
2980
2981 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
2982 system.
2983 (af_latin_uniranges): Renamed to...
2984 (af_latn_uniranges): This.
2985 (af_latin_script_class): Reduced and renamed to...
2986 (af_latn_script_class): This.
2987 * src/autofit/aflatin.h: Updated.
2988
2989 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
2990 writing system.
2991 (af_latin2_uniranges): Renamed to...
2992 (af_ltn2_uniranges): This.
2993 Synchronize ranges with `latin'.
2994 (af_latin2_script_class): Reduced and renamed to...
2995 (af_ltn2_script_class): This.
2996 * src/autofit/aflatin2.h: Updated.
2997
29982013-07-30 Werner Lemberg <wl@gnu.org>
2999
Werner Lemberg5d6a3602013-07-30 23:17:04 +02003000 [autofit] Variable renaming.
3001
3002 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
3003 s/clazz/script_class/.
3004 Update all users.
3005
suzuki toshiya2b29ed62013-07-30 13:55:29 +090030062013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3007
3008 Ignore libpng-config under cross-building configuration,
3009 because it will return the flags for the hosting environment.
3010
3011 * builds/unix/configure.raw: Ignore libpng-config when
3012 `cross_compiling' == yes.
3013
suzuki toshiyaf2e7f1e2013-07-30 13:32:57 +090030142013-07-30 Behdad Esfahbod <behdad@google.com>
3015
3016 Prevent division by zero by a transparent color.
3017
3018 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
3019 Return 0 immediately, when alpha channel is zero.
3020
Behdad Esfahbod21c32b02013-07-25 21:53:18 +020030212013-07-25 Behdad Esfahbod <behdad@google.com>
3022
3023 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
3024
3025 Also disambiguate Google's color bitmap tables.
3026
3027 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
3028 New macros.
3029
3030 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
3031 TT_SBIT_TABLE_TYPE_CBLC.
3032
3033 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
3034
3035 * src/sfnt/ttsbit.c (tt_face_load_sbit,
3036 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
3037 TT_SBIT_TABLE_TYPE_CBLC.
3038
suzuki toshiyab4725cb2013-07-24 14:25:39 +090030392013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3040
3041 [sfnt] Fix for `make multi' target.
3042
3043 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
3044
Werner Lemberg6a7df622013-07-20 10:48:37 +020030452013-07-20 Werner Lemberg <wl@gnu.org>
3046
3047 * docs/INSTALL.GNU: Updated.
3048
Behdad Esfahbodff269522013-07-20 08:02:39 +020030492013-07-20 Behdad Esfahbod <behdad@google.com>
3050
3051 [sfnt] Fix `sbix' table version handling.
3052
3053 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
3054 USHORT version numbers are to be considered as `minor'.
3055
Werner Lemberg05c14212013-07-19 23:11:23 +020030562013-07-19 Werner Lemberg <wl@gnu.org>
3057
3058 [autofit] Fix segment classification for blue zones.
3059
3060 The old code (essentially unchanged since the very beginning)
3061 incorrectly handled this configuration
3062
3063 x -o- x
3064 / \
3065 / \
3066 / \
3067 o o
3068
3069 as flat and this
3070
3071 o o
3072 / /
3073 x| x|
3074 | |
3075 o---------------o
3076
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02003077 as round. (`o' and `x' are on and off points, respectively).
Werner Lemberg05c14212013-07-19 23:11:23 +02003078
3079 This is a major change which should improve the rendering results
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02003080 enormously for many TrueType fonts, especially in the range approx.
Werner Lemberg05c14212013-07-19 23:11:23 +02003081 20-40ppem, fixing the appearance of many overshoots.
3082
3083 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
3084 first and last points of the segment, not the points right before
3085 and after.
3086
30872013-07-19 Behdad Esfahbod <behdad@google.com>
Werner Lemberg01705392013-07-18 13:13:12 +02003088
Behdad Esfahbod778a7e62013-07-19 14:28:28 +02003089 [sfnt] `sbix' fix-ups.
3090
3091 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
3092 are rendered scaled and then the `glyf' outline rendered on top. We
3093 don't support that yet, so just ignore the `glyf' outline and
3094 advertise it as a bitmap-only font.
3095
3096 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
3097 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
3098 (tt_face_load_sbix_image): Typo.
3099
31002013-07-18 Behdad Esfahbod <behdad@google.com>
3101
Werner Lemberg01705392013-07-18 13:13:12 +02003102 [sfnt] Add support for Apple's `sbix' color bitmap table.
3103
3104 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
3105 fields to FT_Short and FT_UShort, respectively.
3106 (TT_SBitTableType): New enumeration.
3107 (TT_FaceRec): Add `sbit_table_type' field.
3108
3109 * include/freetype/tttags.h (TTAG_sbix): New macro.
3110
3111 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
3112 FT_GlyphSlot argument instead FT_Bitmap.
3113 Add flag to control map and metrics handling.
3114 Update all users.
3115
3116 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
3117 (tt_face_load_eblc): Renamed to...
3118 (tt_face_load_sbit): This.
3119 Handlic `sbix' bitmaps.
3120 (tt_face_free_eblc): Renamed to...
3121 (tt_face_load_sbit): This.
3122 Updated.
3123 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
3124 (tt_face_load_sbix_image): New function.
3125 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
3126 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
3127 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
3128 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
3129 and handle load flags.
3130 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
3131 handle formats 17-19.
3132 Move color to grayscale conversion to...
3133 (tt_face_load_sbit_image): Here.
3134 Handle `sbix' bitmaps.
3135
3136 * src/sfnt/pngshim.h: Updated.
3137 * src/sfnt/ttsbit.h: Updated.
3138 * src/sfnt/sfdriver.c: Updated.
3139
Werner Lemberg274207e2013-07-18 12:38:57 +020031402013-07-18 Werner Lemberg <wl@gnu.org>
3141
3142 [sfnt] Ignore invalid magic number in `head' or `bhed'.
3143
3144 Other font engines seem to ignore it also. Problem reported by
3145 Hin-Tak Leung <htl10@users.sourceforge.net>.
3146
3147 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
3148 we have an invalid magic number.
3149
Werner Lemberg9a7951d2013-07-16 15:25:24 +020031502013-07-16 Werner Lemberg <wl@gnu.org>
3151
3152 [smooth] Fix segfault caused by previous commit.
3153
3154 * src/smooth/ftgrays.c (gray_set_cell): Always compute
3155 `ras.invalid'.
3156
David Turnera5f33ee2013-07-16 12:40:03 +020031572013-07-16 David Turner <digit@google.com>
3158
David Turner89929ec2013-07-16 13:36:07 +02003159 [smooth] Improve performance.
3160
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02003161 Provide a work-around for an ARM-specific performance bug in GCC.
David Turner89929ec2013-07-16 13:36:07 +02003162 This speeds up the rasterizer by more than 5%.
3163
3164 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
3165 also improves performance on other platforms by a tiny bit (<1%).
3166
3167 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
3168 Use it where appropriate.
3169
3170 (gray_record_cell, gray_set_cell, gray_move_to,
3171 gray_convert_glyph_inner): Streamline condition handling.
3172
31732013-07-16 David Turner <digit@google.com>
3174
David Turnerf66d48e2013-07-16 13:18:00 +02003175 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
3176
3177 This patch provides slightly optimized versions for ARM, x86, and
3178 x86_64 CPUs if built with GCC.
3179
3180 Also remove some dead code.
3181
3182 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
3183 TT_DotFix14_long_long): New functions.
3184
31852013-07-16 David Turner <digit@google.com>
3186
David Turnerb2890882013-07-16 12:52:18 +02003187 Optimize FT_MulFix for x86_64 GCC builds.
3188
3189 This patch provides an optimized `FT_MulFix' implementation for
3190 x86_64 machines when FreeType is built with GCC, or compatible
3191 compilers like Clang.
3192
3193 Example:
3194 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
3195
3196 Before:
3197
3198 Load 4.863 us/op
3199 Load_Advances (Normal) 4.816 us/op
3200 Load_Advances (Fast) 0.028 us/op
3201 Render 2.753 us/op
3202 Get_Glyph 0.463 us/op
3203 Get_CBox 0.077 us/op
3204 Get_Char_Index 0.023 us/op
3205 Iterate CMap 13.898 us/op
3206 New_Face 12.368 us/op
3207 Embolden 0.028 us/op
3208 Get_BBox 0.302 us/op
3209
3210 After:
3211
3212 Load 4.617 us/op
3213 Load_Advances (Normal) 4.645 us/op
3214 Load_Advances (Fast) 0.027 us/op
3215 Render 2.789 us/op
3216 Get_Glyph 0.460 us/op
3217 Get_CBox 0.077 us/op
3218 Get_Char_Index 0.024 us/op
3219 Iterate CMap 13.403 us/op
3220 New_Face 12.278 us/op
3221 Embolden 0.028 us/op
3222 Get_BBox 0.301 us/op
3223
3224 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
3225 (FT_MulFix_x86_64): New function.
3226
32272013-07-16 David Turner <digit@google.com>
3228
David Turnera5f33ee2013-07-16 12:40:03 +02003229 Speed up ARMv7 support.
3230
3231 When building for ARMv7 with thumb2 instructions, the optimized
3232 `FT_MulFix_arm' assembly routine was not being used.
3233
3234 The reason for this is in the `ftconfig.h' header, namely:
3235
3236 - The assembly routine uses the `smull' instruction which is not
3237 available when generating Thumb-1 machine code. It is available
3238 in Thumb-2 mode, though.
3239
3240 - The header was written a long time ago before Thumb-2 became
3241 widely popular (e.g. with Android). So it simply doesn't use the
3242 assembly routine if the `__thumb__' built-in macro is defined.
3243
3244 - When compiling in Thumb-2 mode, the compiler will define both
3245 `__thumb__' and `__thumb2__'.
3246
3247 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
3248 assembly routine is only avoided when generating Thumb-1 code.
3249
3250 Given that this is performance-sensitive function, this improves
3251 `ftbench' as follows on a Galaxy Nexus:
3252
3253 Before (us/op) After (us/op)
3254
3255 - loading Arial.ttf glyphs at 14 ppem [1]
3256
3257 Load 34.285 33.098
3258
3259 - same operation with the light auto-hinter [2]
3260
3261 Load 31.317 29.590
3262
3263 - same operation without hinting [3]
3264
3265 Load 6.143 5.376
3266
3267 - loading Arial.ttf advances at 14 ppem [4]
3268
3269 Load_Advances (normal) 34.216 33.016
3270 Load_Advances (fast) 0.176 0.176
3271
3272 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
3273 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
3274 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
3275 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
3276
3277 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
3278 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
3279
Werner Lemberge12fc772013-06-28 07:57:32 +020032802013-06-28 Werner Lemberg <wl@gnu.org>
3281
3282 * docs/CHANGES: Updated.
3283
Werner Lemberg680c1d42013-06-27 17:21:59 +020032842013-06-27 Werner Lemberg <wl@gnu.org>
3285
3286 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
3287
Werner Lembergc7cc9eb2013-06-25 07:24:02 +020032882013-06-25 Werner Lemberg <wl@gnu.org>
3289
Werner Lembergb8850fc2013-06-26 12:22:10 +02003290 [cff] Add darkening limit to `darkening-parameters'.
3291
3292 * src/cff/cffdrivr.c (cff_property_set): Add check.
3293
32942013-06-25 Werner Lemberg <wl@gnu.org>
3295
Werner Lemberg89ca1fd2013-06-25 23:28:02 +02003296 [cff] Add `darkening-parameters' property.
3297
3298 * include/freetype/ftcffdrv.h: Document it.
3299
3300 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
3301 `darkening-parameters' property.
3302
3303 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
3304
3305 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
3306 argument and use it.
3307 Update all callers.
3308
3309 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
3310 `darken_params' values.
3311
3312 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
3313
3314 * src/cff/cffobjs.c (cff_driver_init): Set default values for
3315 `darken_params'.
3316
33172013-06-25 Werner Lemberg <wl@gnu.org>
3318
Werner Lembergfad93262013-06-25 10:41:37 +02003319 [docmaker] Code shuffling.
3320
3321 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
3322 * src/tools/docmaker/sources.py: ... to this file.
3323
33242013-06-25 Werner Lemberg <wl@gnu.org>
3325
Werner Lemberg8bdc4072013-06-25 10:20:53 +02003326 [docmaker] Remove unused functions.
3327
3328 * src/tools/docmaker/content.py (DocMarkup.get_start,
3329 DocBlock.get_markup_name): Removed.
3330 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
3331 HtmlFormatter.make_html_words): Removed.
3332
33332013-06-25 Werner Lemberg <wl@gnu.org>
3334
Werner Lembergffb8b472013-06-25 09:09:30 +02003335 * builds/freetype.mk (dll): Remove target.
3336
3337 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
3338
33392013-06-25 Werner Lemberg <wl@gnu.org>
3340
Werner Lembergc7cc9eb2013-06-25 07:24:02 +02003341 [docmaker] Recognise URLs.
3342
3343 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
3344 (make_html_para): Use it.
3345
Werner Lemberg25b7da52013-06-19 10:23:36 +020033462013-06-19 Werner Lemberg <wl@gnu.org>
3347
Werner Lembergfe4f5712013-06-19 23:27:47 +02003348 * Version 2.5.0.1 released.
3349 ===========================
3350
3351
3352 Tag sources with `VER-2-5-0-1'.
3353
3354 * include/freetype/config/ftoption.h: Undefine
3355 CFF_CONFIG_OPTION_OLD_ENGINE.
3356 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
3357
33582013-06-19 Werner Lemberg <wl@gnu.org>
3359
Werner Lemberg609f0ca2013-06-19 14:41:47 +02003360 * builds/unix/install.mk (install): Don't create `cache' directory.
3361
3362 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
3363
33642013-06-19 Werner Lemberg <wl@gnu.org>
3365
Werner Lemberg25b7da52013-06-19 10:23:36 +02003366 * Version 2.5.0 released.
3367 =========================
3368
3369
3370 Tag sources with `VER-2-5-0'.
3371
3372 * docs/VERSION.DLL: Update documentation and bump version number to
3373 2.5.0.
3374
3375 * README, Jamfile (RefDoc),
3376 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
3377 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
3378 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
3379 builds/win32/visualc/freetype.dsp,
3380 builds/win32/visualc/freetype.vcproj,
3381 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
3382 builds/win32/visualce/freetype.vcproj,
3383 builds/win32/visualce/index.html,
3384 builds/wince/vc2005-ce/freetype.vcproj,
3385 builds/wince/vc2005-ce/index.html,
3386 builds/wince/vc2008-ce/freetype.vcproj,
3387 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
3388
3389 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
3390 (FREETYPE_PATCH): Set to 0.
3391
3392 * builds/unix/configure.raw (version_info): Set to 16:2:10.
3393
3394 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
3395 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
3396
Werner Lembergf56691a2013-06-18 10:17:48 +020033972013-06-18 Werner Lemberg <wl@gnu.org>
3398
3399 Fix Savannah bug #39269.
3400
3401 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
3402 case of reacollocation failures.
3403
Andrew Church67cf7a82013-06-18 09:35:34 +020034042013-06-18 Andrew Church <achurch+savannah@achurch.org>
3405
3406 Fix Savannah bug #39266.
3407
3408 If memory allocations fail at certain points while opening a font,
3409 FreeType can either crash due to a NULL dereference or leak memory.
3410
3411 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
3412 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
3413 FT_Open_Face() fails in a memory allocation before the face's
3414 reference count is set to 1, a subsequent `FT_Done_Library' call
3415 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
3416 the face.
3417
3418 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
3419 earlier.
3420 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
3421 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
3422
34232013-06-14 Werner Lemberg <wl@gnu.org>
Werner Lembergd7e34442013-06-14 18:33:39 +02003424
3425 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
3426
Dave Arnoldcb23a622013-06-13 07:46:32 +020034272013-06-06 Dave Arnold <darnold@adobe.com>
3428 Werner Lemberg <wl@gnu.org>
3429
3430 [cff] Add code to Adobe's engine to handle ppem > 2000.
3431
3432 * src/cff/cffgload.c (cff_slot_load): If we get
3433 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
3434
Andrew Church67cf7a82013-06-18 09:35:34 +020034352013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg25b6e602013-06-12 11:06:34 +02003436
Werner Lemberg294ce112013-06-12 23:33:11 +02003437 Another try on pragmas.
3438
3439 * include/freetype/internal/ftdebug.h: Move pragmas to...
3440 * include/freetype/internal/internal.h: ... this file since it gets
3441 included by all source files.
3442 * include/freetype/internal/ftserv.h: Remove pragma which has no
3443 effect.
3444
Dave Arnoldcb23a622013-06-13 07:46:32 +020034452013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg294ce112013-06-12 23:33:11 +02003446
Werner Lemberg25b6e602013-06-12 11:06:34 +02003447 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
3448
3449 This partially undoes commit 3f6e0e0c.
3450
Werner Lembergc06889e2013-06-12 10:58:06 +020034512013-06-12 Werner Lemberg <wl@gnu.org>
3452
3453 More compiler warning fixes.
3454
3455 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
3456
Werner Lemberg99e60d82013-06-10 01:44:37 +020034572013-06-10 Werner Lemberg <wl@gnu.org>
3458
Werner Lemberg5e094c62013-06-10 14:59:21 +02003459 [truetype] Improve handling of broken sbit advance widths.
3460
3461 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
3462 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
3463
3464 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
3465
34662013-06-10 Werner Lemberg <wl@gnu.org>
3467
Werner Lemberga25ecfd2013-06-10 12:57:16 +02003468 [sfnt] Improve embedded bitmap tracing.
3469
3470 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
3471 bitmap strike match to...
3472 (FT_Match_Size): This function.
3473
3474 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
3475 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
3476 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
3477 tt_sbit_decoder_load_image): Decorate with tracing messages.
3478
34792013-06-10 Werner Lemberg <wl@gnu.org>
3480
Werner Lemberg99e60d82013-06-10 01:44:37 +02003481 Fix Savannah bug #39160.
3482
3483 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
3484 for the degenerate case.
3485
Werner Lemberg2ba871b2013-06-09 08:20:54 +020034862013-06-09 David Turner <digit@google.com>
3487
3488 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
3489
3490 This code, present since eight(!) years in the unused `CACHE'
3491 branch, has been forgotten to apply to the master branch. It's
3492 really amazing that noone has ever complained since
3493 `FTC_Manager_Reset' is pretty useless without flushing the cache.
3494
Werner Lemberg85fd84b2013-06-07 17:10:21 +020034952013-06-07 Werner Lemberg <wl@gnu.org>
3496
Werner Lemberg3f6e0e02013-06-07 18:10:40 +02003497 Add and improve pragmas for MSVC compiler.
3498
3499 * include/freetype/internal/ftdebug.h: Remove pragmas.
3500 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
3501 * include/freetype/internal/ftvalid.h: Handle warning C4324.
3502 * src/base/ftobjs.c: Use push and pop for pragmas.
3503 * src/gzip/ftgzip.c: Handle warning C4244.
3504
35052013-06-07 Werner Lemberg <wl@gnu.org>
3506
Werner Lemberg85fd84b2013-06-07 17:10:21 +02003507 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
3508
3509 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
3510
Werner Lemberg4447b2c2013-06-06 21:28:36 +020035112013-06-06 Dave Arnold <darnold@adobe.com>
3512
3513 [cff] Add early exit feature for width-only calls.
3514
3515 This is for `FT_Get_Advance'.
3516
3517 There are 7 places where the spec says the width can be defined:
3518
3519 hstem/hstemhm
3520 vstem/vstemhm
3521 cntrmask/hintmask
3522 hmoveto
3523 vmoveto
3524 rmoveto
3525 endchar
3526
3527 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
3528 if possible.
3529
3530 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
3531 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
3532 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
3533
Werner Lembergbadf3172013-06-06 09:16:38 +020035342013-06-06 Werner Lemberg <wl@gnu.org>
3535
3536 Next round of compiler fixes.
3537
3538 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
3539 Add proper cast.
3540
3541 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
3542 cast.
3543 * include/freetype/internal/ftstream.h: Decorate stream and frame
3544 macros with `FT_Long' and `FT_ULong' as appropriate.
3545
3546 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
3547 raccess_guess_darwin_newvfs): Use cast.
3548
3549 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
3550
3551 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
3552 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
3553
3554 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
3555 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
3556 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
3557
3558 * src/cid/cidparse.c (cid_parser_new): Use cast.
3559
3560 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
3561
3562 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
3563
3564 * src/raster/ftraster.c (ft_black_reset): Use cast.
3565
3566 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
3567 (ALL_POINTS): Fix cast.
3568
3569 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
3570 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
3571
Dave Arnoldc3782492013-06-05 19:57:55 +020035722013-06-05 Dave Arnold <darnold@adobe.com>
3573
3574 Fix more MSVC Win32 compiler warnings.
3575
3576 * src/base/ftobjs.c: Fix typo in MS pragma.
3577
3578 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
3579 `lineno' is only used in debug mode.
3580
3581 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
3582 debug mode.
3583
Werner Lemberg45392b72013-06-05 13:43:20 +020035842013-06-05 Werner Lemberg <wl@gnu.org>
3585
3586 Fix compiler warnings.
3587
3588 * include/freetype/internal/ftmemory.h: Decorate memory allocation
3589 macros with `FT_Long' where appropriate.
3590 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
3591
3592 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
3593 cast.
3594
3595 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
3596 including `md5.c'.
3597
3598 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
3599 cast.
3600
3601 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
3602 (tt_sbit_decoder_load_bitmap): Beautification.
3603
3604 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
3605 variables (earlier).
3606
3607 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
3608
3609 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
3610 where appropriate.
3611
3612 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
3613
Werner Lembergdc624ca2013-06-04 10:30:48 +020036142013-06-04 Werner Lemberg <wl@gnu.org>
3615
Werner Lembergd9634982013-06-04 20:18:57 +02003616 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
3617
3618 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
3619
36202013-06-04 Werner Lemberg <wl@gnu.org>
3621
Werner Lembergdc624ca2013-06-04 10:30:48 +02003622 Apply fixes for cppcheck nitpicks.
3623
3624 http://cppcheck.sourceforge.net/
3625
Werner Lemberg8d8508e2013-06-04 13:09:01 +02003626 The call was (from the top-level of the FreeType tree):
3627
3628 cppcheck --force \
3629 --enable=all \
3630 -I include \
3631 -I include/freetype/ \
3632 -I include/freetype/config/ \
3633 -I include/freetype/internal/ \
3634 . &> cppcheck.log
3635
Werner Lembergdc624ca2013-06-04 10:30:48 +02003636 Note that the current version heavily chokes on FreeType, delivering
Werner Lemberg8d8508e2013-06-04 13:09:01 +02003637 many wrong results. I will report those issues to the cppcheck team
Werner Lembergdc624ca2013-06-04 10:30:48 +02003638 so that a newer version gives improved results hopefully.
3639
3640 */* Improve variable scopes.
3641 */* Remove redundant initializations which get overwritten.
3642
Werner Lemberge8ed2d62013-08-01 12:20:20 +02003643 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
Werner Lembergdc624ca2013-06-04 10:30:48 +02003644 Remove unused variable.
3645
3646 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
3647
3648 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
3649 Remove functionless code.
3650
3651 * src/tools/ftrandom.c (main): Fix memory leak.
3652
Werner Lemberg2429dc32013-06-03 12:41:58 +020036532013-06-03 Werner Lemberg <wl@gnu.org>
3654
3655 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
3656
3657 This controls whether the old FreeType CFF engine gets compiled into
3658 FreeType. It is now disabled by default.
3659
3660 * devel/ftoption.h, include/freetype/config/ftoption.h
3661 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
3662
3663 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
3664 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
3665 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
3666 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
3667 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
3668
3669 * docs/CHANGES: Updated.
3670
Werner Lembergf9cceeb2013-06-02 23:38:13 +020036712013-06-02 Werner Lemberg <wl@gnu.org>
3672
3673 Fix PNG library handling.
3674
3675 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
3676 LIBPNG_LDFLAGS.
3677
Behdad Esfahbod760d3422013-05-29 11:36:18 +020036782013-05-23 Behdad Esfahbod <behdad@google.com>
3679
3680 Add support for color embedded bitmaps (eg. color emoji).
3681
3682 A new load flag, FT_LOAD_COLOR, makes FreeType load color
3683 embedded-bitmaps, following this draft specification
3684
3685 https://color-emoji.googlecode.com/git/specification/v1.html
3686
3687 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
3688 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
3689 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
3690 pre-multiplied sRGB images. If PNG support is available, PNG color
3691 images as defined in the same proposed specification are supported
3692 also.
3693
3694 Note that color bitmaps are converted to grayscale if client didn't
3695 ask for color.
3696
3697 * builds/unix/configure.raw: Search for libpng.
3698 Add `--without-png' option.
3699
3700 * devel/ftoption.h, include/freetype/config/ftoption.h
3701 (FT_CONFIG_OPTION_USE_PNG): New macro.
3702
3703 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
3704
3705 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
3706 `FT_PIXEL_MODE_BGRA'.
3707
3708 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
3709
3710 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
3711 (ft_gray_for_premultiplied_srgb_bgra): New function.
3712 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
3713
3714 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
3715
3716 * src/sfnt/sfnt.c: Include `pngshim.c'.
3717
3718 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
3719 (tt_face_load_eblc): Load `CBLC'.
3720 (tt_sbit_decoder_init): Load `CBDT'.
3721 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
3722 color and grayscale bitmaps.
3723 Set `num_grays'. This is used by `ftview' to choose the blending
3724 algorithm.
3725 (tt_sbit_decoder_load_byte_aligned,
3726 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
3727 tt_sbit_decoder_load_image): Pass load flag.
3728 s/write/pwrite/.
3729 Don't call `tt_sbit_decoder_alloc_bitmap'.
3730 Updated.
3731 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
3732 (tt_sbit_decoder_load_bitmap): Pass load flag.
3733 Handle new glyph formats 17, 18, and 19.
3734 Call `tt_sbit_decoder_alloc_bitmap'.
3735 Flatten color bitmaps if necessary.
3736 (tt_face_load_sbit_image): Updated.
3737
3738 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
3739
3740 * docs/CHANGES: Updated.
3741
Guenter41e44802013-05-24 11:38:09 +020037422013-05-24 Guenter <info@gknw.net>
3743
3744 Apply Savannah patch #8055.
3745
3746 Make `apinames' create an import file for NetWare.
3747
3748 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
3749 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
3750 (names_dump): Handle it.
3751 (usage): Updated.
3752 (main): Handle new command line flag `-wN'.
3753
Behdad Esfahbod2d6e1fb2013-05-23 08:01:20 +020037542013-05-23 Behdad Esfahbod <behdad@behdad.org>
3755
3756 Compilation fix.
3757
3758 * src/truetype/ttinterp.c (TT_RunIns)
3759 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
3760
Infinality18f35ed2013-05-21 20:51:15 -050037612013-05-22 Infinality <infinality@infinality.net>
3762
Infinality3c783c12013-05-21 21:03:00 -05003763 [truetype] Formatting and an additional subpixel tweak.
3764
3765 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
3766 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
3767 Revert previous modification for Verdana clones.
3768
37692013-05-22 Infinality <infinality@infinality.net>
3770
Infinality18f35ed2013-05-21 20:51:15 -05003771 [truetype] Adjust subpixel zp2 moves and tweak rules.
3772
3773 These modifications fix thin diagonal stems in some legacy fonts.
3774
3775 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
3776 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
3777 (Ins_SHP): Disable x moves here for subpixel rendering.
3778 (Ins_SHPIX): Only disable x moves in compatibility mode.
3779 Split out zp2 move reversals and reorder conditional respectively.
3780
3781 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
3782 Only adjust Verdana clones for 17 ppem.
3783 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
3784 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
3785
Infinality63bfa832013-05-20 07:38:21 +020037862013-05-20 Infinality <infinality@infinality.net>
3787
3788 [truetype] Simplify and improve subpixel function detection.
3789
3790 Some small enhancements have allowed the removal of many macros and
3791 the simplification of existing rules in `ttsubpix.c'.
3792
3793 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
3794 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
3795 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
3796 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
3797 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
3798
3799 * src/truetype/ttsubpix.c: Updated affected rules.
3800
3801 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
3802 (INS_FDEF): Add additional function detection.
3803 (INS_ENDF): Set runtime flag.
3804 (Ins_CALL): Skip the call under certain conditions.
3805 Remove bad code.
3806 (Ins_LOOPCALL): Skip the call under certain conditions.
3807 Remove bad code.
3808 (Move_Zp2_Point): Updated.
3809 (Ins_SHPIX): Updated.
3810 Skip the move under some situations.
3811 (Ins_MIAP): Improve conditions.
3812 (Ins_MIRP): Updated.
3813 (Ins_DELTAP): Skip move under certain conditions.
3814 Simplify conditions.
3815 (TT_RunIns): Updated.
3816 Add code to handle new function detection.
3817 Trace messages.
3818
Werner Lembergfd664692013-05-17 17:40:27 +020038192013-05-17 Werner Lemberg <wl@gnu.org>
3820
3821 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
3822
3823 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
3824 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
3825
Werner Lembergf04951a2013-05-17 13:51:07 +020038262013-05-15 Werner Lemberg <wl@gnu.org>
3827
3828 [truetype] Add `interpreter-version' property.
3829
3830 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
3831 at runtime.
3832
Werner Lemberg27991332013-05-17 14:00:26 +02003833 * include/freetype/ftttdrv.h: New file.
3834
3835 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
3836 macro.
3837
Werner Lembergf04951a2013-05-17 13:51:07 +02003838 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
3839 (tt_property_set, tt_property_get): Fill templates.
3840
3841 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
3842 member.
3843 Remove unused `extension_component' member.
3844
3845 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
3846 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
3847 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
3848
3849 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
3850 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
3851 Update all affected functions to use it.
3852 Use TT_INTERPRETER_VERSION_XXX where appropriate.
3853
3854 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
3855 (tt_driver_init): Initialize `interpreter_version'.
3856
3857 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
3858 Use TT_INTERPRETER_VERSION_XXX where appropriate.
3859
Werner Lemberg7441dd82013-05-13 09:12:46 +020038602013-05-13 Werner Lemberg <wl@gnu.org>
3861
Werner Lemberg6650be72013-05-13 10:05:29 +02003862 [truetype] Avoid empty source file.
3863
3864 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
3865 Provide dummy typedef.
3866
38672013-05-13 Werner Lemberg <wl@gnu.org>
3868
Werner Lemberg7441dd82013-05-13 09:12:46 +02003869 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
3870
3871 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
3872
Brian Nixon8d6025c2013-05-13 09:06:42 +020038732013-05-13 Brian Nixon <bnixon@yahoo.com>
3874
3875 Fix Savannah bug #38970.
3876
3877 * src/base/ftdebug.c, builds/win32/ftdebug.c,
3878 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
3879 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
3880
Werner Lembergd51ac9c2013-05-12 06:00:27 +020038812013-05-12 Werner Lemberg <wl@gnu.org>
3882
Werner Lembergcd888752013-05-12 15:08:57 +02003883 [truetype] Add framework for TrueType properties.
3884
3885 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
3886 (tt_property_set, tt_property_get): New functions, still empty.
3887 Define `tt_service_properties' service.
3888 Update `tt_services'.
3889
3890 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
3891 (TT_SERVICE_PROPERTIES_GET): New macro.
3892 (TTModulePIC): Add `tt_service_properties'.
3893
38942013-05-12 Werner Lemberg <wl@gnu.org>
3895
Werner Lembergb112fa42013-05-12 07:29:04 +02003896 Fix Savannah bug #38967.
3897
3898 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
3899
39002013-05-12 Werner Lemberg <wl@gnu.org>
3901
Werner Lembergcbcf33d2013-05-12 07:27:48 +02003902 Introduce unsigned 64bit type (if available).
3903
3904 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
3905 [FT_LONG64]: Provide FT_UInt64.
3906
3907 * builds/unix/ftconfig.in: Synchronized.
3908
39092013-05-12 Werner Lemberg <wl@gnu.org>
3910
Werner Lembergd51ac9c2013-05-12 06:00:27 +02003911 Fix Savannah bug #38968.
3912
3913 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
3914 FT_Property_{Set,Get}.
3915 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
3916 FT_Property_{Set,Get}.
3917
Werner Lembergf6aa0892013-05-10 07:58:47 +020039182013-05-10 Werner Lemberg <wl@gnu.org>
3919
Werner Lembergea2b4752013-05-10 08:04:33 +02003920 [sfnt] Clean up bitmap code.
3921
3922 * src/sfnt/ttsbit.c: Deleted.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02003923 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
Werner Lembergea2b4752013-05-10 08:04:33 +02003924 * rules.mk (SFNT_DRV_H): Updated.
3925
39262013-05-10 Werner Lemberg <wl@gnu.org>
3927
Werner Lembergf6aa0892013-05-10 07:58:47 +02003928 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
3929
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003930----------------------------------------------------------------------------
3931
Werner Lemberg73cc8332014-01-01 07:10:36 +01003932Copyright 2013-2014 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003933David Turner, Robert Wilhelm, and Werner Lemberg.
3934
3935This file is part of the FreeType project, and may only be used, modified,
3936and distributed under the terms of the FreeType project license,
3937LICENSE.TXT. By continuing to use, modify, or distribute this file you
3938indicate that you have read the license and understand and accept it
3939fully.
3940
3941
3942Local Variables:
3943version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00003944coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00003945End: