blob: c4a3c536bcc8e4fe2c272384b0f50f2053ab40be [file] [log] [blame]
Werner Lemberga724dcf2015-10-11 05:50:07 +020012014-12-30 Werner Lemberg <wl@gnu.org>
2
3 * Version 2.5.5 released.
4 =========================
5
6
7 Tag sources with `VER-2-5-5'.
8
9 * docs/VERSION.DLL: Update documentation and bump version number to
10 2.5.5.
11
12 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
13 builds/windows/vc2005/index.html,
14 builds/windows/vc2008/freetype.vcproj,
15 builds/windows/vc2008/index.html,
16 builds/windows/vc2010/freetype.vcxproj,
17 builds/windows/vc2010/index.html,
18 builds/windows/visualc/freetype.dsp,
19 builds/windows/visualc/freetype.vcproj,
20 builds/windows/visualc/index.html,
21 builds/windows/visualce/freetype.dsp,
22 builds/windows/visualce/freetype.vcproj,
23 builds/windows/visualce/index.html,
24 builds/wince/vc2005-ce/freetype.vcproj,
25 builds/wince/vc2005-ce/index.html,
26 builds/wince/vc2008-ce/freetype.vcproj,
27 builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
28
29 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
30
31 * builds/unix/configure.raw (version_info): Set to 17:4:11.
32 * CMakeLists.txt (VERSION_PATCH): Set to 5.
33 * docs/CHANGES: Updated.
34
35 * builds/toplevel.mk (dist): Fix typos.
36
Alexei Podtelezhnikov04e7c742016-06-04 23:05:59 -0400372014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberga724dcf2015-10-11 05:50:07 +020038
39 [base] Formatting and nanooptimizations.
40
41 * src/base/ftcalc.c,
42 * src/base/fttrigon.c: Revise sign restoration.
43
442014-12-13 Werner Lemberg <wl@gnu.org>
45
46 * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
47
482014-12-11 Werner Lemberg <wl@gnu.org>
49
50 * builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
51
52 Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
53 (contrary to GNU tar), so force the POSIX-1.1988 format.
54
55 Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
56
572014-12-11 Werner Lemberg <wl@gnu.org>
58
59 * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
60
612014-12-11 Werner Lemberg <wl@gnu.org>
62
63 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
64
65 Problem reported by Dennis Felsing <dennis@felsin9.de>.
66
672014-12-11 Werner Lemberg <wl@gnu.org>
68
69 * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
70
71 Problem reported by Dennis Felsing <dennis@felsin9.de>.
72
732014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
74
75 [gxvalid] Fix a naming convention conflicting with ftvalid.
76
77 See previous changeset for otvalid.
78
79 * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
80 `valid' by `gxvalid'.
81 * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
82 gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
83 gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
84 gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
85 gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
86 it is typed as GXV_Validator.
87
882014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
89
90 [otvalid] Fix a naming convention conflicting with ftvalid.
91
92 Some prototypes in ftvalid.h use `valid' for the variables
93 typed as FT_Validator. Their implementations in src/base/
94 ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
95
96 Some macros in otvcommn.h assume the exist of the variable
97 `valid' typed as OTV_Validator in the caller.
98
99 Mixing these two conventions cause invalid pointer conversion
100 and unexpected SEGV in longjmp. To prevent it, all variables
101 typed as OTV_Validator are renamed to `otvalid'.
102
103 * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
104 * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
105 otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
106 if it is typed as OTV_Validator.
107
1082014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
109
110 [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
111
112 Original patch is designed by Werner Lemberg. Extra part
113 for otvalid and gxvalid are added by suzuki toshiya, see
114 discussion:
Werner Lemberg87ddad22017-12-04 20:43:30 +0100115 https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
116 https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
Werner Lemberga724dcf2015-10-11 05:50:07 +0200117
118 * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
119 * src/gxvalid/gxvcommn.h: Ditto.
120 * src/otvalid/otvcommn.h: Ditto.
121
1222014-12-08 Werner Lemberg <wl@gnu.org>
123
124 [pcf] Fix Savannah bug #43774.
125
126 Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
127 functions. Since the PCF format doesn't have an official
128 specification, we have to exactly follow these functions' behaviour.
129
130 The problem was unveiled with a patch from 2014-11-06, fixing issue
131 #43547.
132
133 * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
134 element. Instead, assign real size.
135
1362014-12-07 Werner Lemberg <wl@gnu.org>
137
138 Work around a bug in Borland's C++ compiler.
139
140 See
141
142 http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
143
144 for Borland's bug tracker entry.
145
146 Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
Werner Lemberg87ddad22017-12-04 20:43:30 +0100147 https://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
Werner Lemberga724dcf2015-10-11 05:50:07 +0200148
149 * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
150 (gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
151
1522014-12-07 Werner Lemberg <wl@gnu.org>
153
154 */*: Decorate hex constants with `U' and `L' where appropriate.
155
1562014-12-07 Werner Lemberg <wl@gnu.org>
157
158 [truetype] Prevent memory leak for buggy fonts.
159
160 * src/truetype/ttobjs.c (tt_size_done): Unconditionally call
161 `tt_size_done_bytecode'.
162
1632014-12-06 Werner Lemberg <wl@gnu.org>
164
165 * Version 2.5.4 released.
166 =========================
167
168
169 Tag sources with `VER-2-5-4'.
170
171 * docs/VERSION.DLL: Update documentation and bump version number to
172 2.5.4.
173
174 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
175 builds/windows/vc2005/index.html,
176 builds/windows/vc2008/freetype.vcproj,
177 builds/windows/vc2008/index.html,
178 builds/windows/vc2010/freetype.vcxproj,
179 builds/windows/vc2010/index.html,
180 builds/windows/visualc/freetype.dsp,
181 builds/windows/visualc/freetype.vcproj,
182 builds/windows/visualc/index.html,
183 builds/windows/visualce/freetype.dsp,
184 builds/windows/visualce/freetype.vcproj,
185 builds/windows/visualce/index.html,
186 builds/wince/vc2005-ce/freetype.vcproj,
187 builds/wince/vc2005-ce/index.html,
188 builds/wince/vc2008-ce/freetype.vcproj,
189 builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/.
190
191 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
192
193 * builds/unix/configure.raw (version_info): Set to 17:3:11.
194 * CMakeLists.txt (VERSION_PATCH): Set to 4.
195 * docs/CHANGES: Updated.
196
1972014-12-04 Werner Lemberg <wl@gnu.org>
198
199 docs/CHANGES: Updated, formatted.
200
2012014-12-04 Dave Arnold <darnold@adobe.com>
202
203 [cff] Modify an FT_ASSERT.
204
205 * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
206 bug #43661, the test font `...aspartam.otf' still triggers an
207 FT_ASSERT. Since hintmap still works with count==0, ...
208 (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
209 suppress the assert.
210
2112014-12-04 Dave Arnold <darnold@adobe.com>
212
213 [cff] Fix Savannah bug #43661.
214
215 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
216 cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
217 hintmask is constructed.
218
219 * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
220 avoid reading past end of hintmask.
221
2222014-12-03 Werner Lemberg <wl@gnu.org>
223
224 docs/CHANGES: Updated.
225
2262014-12-03 Werner Lemberg <wl@gnu.org>
227
228 [autofit] Better fix for conversion specifiers in debug messages.
229
230 Using `%ld' for pointer differences causes warnings on 32bit
231 platforms. The correct type would be (the relatively new) `%td',
232 however, this is missing on some important platforms.
233
234 This patch improves the change from 2014-11-28.
235
236 * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our
237 pointer differences are always sufficiently small.
238 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
239 af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
240
2412014-12-03 Werner Lemberg <wl@gnu.org>
242
243 FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
244
245 All public FreeType enumeration and flag values are uppercase...
246
Werner Lemberg8cd31eb2017-05-03 23:54:29 +0200247 * include/tttables.h (FT_Sfnt_Tag): Implement it. For backward
Alexei Podtelezhnikovbbb60962016-04-07 01:29:44 -0400248 compatibility, retain the old values as macros.
Werner Lemberga724dcf2015-10-11 05:50:07 +0200249
250 * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
251 (get_sfnt_table): Updated.
252
2532014-12-02 Werner Lemberg <wl@gnu.org>
254
255 * include/*: Improve structure of documentation.
256
257 . Add and update many `<Order>' tags.
258 . Apply various documentation fixes.
259 . Remove details to deprecated (or never implemented) data.
260
2612014-12-02 Werner Lemberg <wl@gnu.org>
262
263 [docmaker] Always handle `<Order>' section elements.
264
265 Previously, those elements were handled only for sections present in
266 a `<Sections>' chapter element.
267
268 * src/tools/docmaker/content.py (ContentProcessor::finish):
269 Implement it.
270
2712014-12-02 Werner Lemberg <wl@gnu.org>
272
273 [docmaker] Properly handle empty rows in Synopsis.
274
275 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
276 `&nbsp;' for empty fields.
277
2782014-12-02 Werner Lemberg <wl@gnu.org>
279
280 [docmaker] Thinko.
281
282 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
283 Emit `/empty/' string for first element also.
284
2852014-12-02 Werner Lemberg <wl@gnu.org>
286
287 [docmaker] Honour empty lines in `<Order>' section element.
288
289 This greatly improves the readability of the `Synopsis' links.
290
291 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
292 Insert string `/empty/' between items.
293
294 * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
295 robust against nonexistent keys.
296
297 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
298 empty <td> elements for `/empty/'.
299
3002014-12-02 Werner Lemberg <wl@gnu.org>
301
302 [docmaker] Ensure Python 3 compatibility.
303
304 * src/tools/docmaker/content.py (ContentProcessor::set_section,
305 ContentProcessor::finish): Replace `has_key' function with `in'
306 keyword.
307
308 * src/tools/docmaker/formatter.py (Formatter::__init__): Replace
309 sorting function with a key generator.
310 (Formatter::add_identifier): Replace `has_key' function with `in'
311 keyword.
312
313 * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
314 Replace `has_key' function with `in' keyword.
315 (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
316 integer division.
317 s/<>/>/.
318
319 * src/tools/docmaker/utils.py: Import `itertools'.
320 (index_sort): Replaced by...
321 (index_key): ... this new key generator (doing exactly the same).
322
3232014-11-29 Werner Lemberg <wl@gnu.org>
324
325 [docmaker] Don't output a block multiple times.
326
327 This bug was hidden by not processing all lines of `<Order>' blocks.
328
329 * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
330 out field names.
331
3322014-11-29 Werner Lemberg <wl@gnu.org>
333
334 [docmaker] Use field values as HTML link targets where possible.
335
336 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
337 Accept second, optional argument to specify a name.
338 (HtmlFormatter::html_source_quote): Link to field ID if possible.
339 (HtmlFormatter::print_html_field_list): Emit `id' attribute.
340
3412014-11-29 Werner Lemberg <wl@gnu.org>
342
343 [docmaker] Allow empty lines in `<Order>' blocks.
344
345 Before this patch, the suggested order of entries stopped at the
346 first empty line.
347
348 Obviously, nobody noticed that this problem caused a much reduced
349 set of links in the `Synopsis' sections; in particular, the
350 `<Order>' blocks contain a lot of entries that wouldn't be listed
351 otherwise...
352
353 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
354 New function to iterate over all items.
355 (DocSection::process): Use it.
356
3572014-11-29 Werner Lemberg <wl@gnu.org>
358
359 * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
360
361 After the single asterisk there must be no other immediately following
362 asterisk.
363
3642014-11-29 Werner Lemberg <wl@gnu.org>
365
366 * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
367
3682014-11-29 Werner Lemberg <wl@gnu.org>
369
370 [docmaker] Improve HTML code for table of contents.
371
372 * src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
373 together with proper CSS.
374
3752014-11-29 Werner Lemberg <wl@gnu.org>
376
377 [docmaker] Provide higher-level markup and simplify HTML.
378
379 * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
380 elements, use CSS descendants (of class `section') to format the
381 data.
382
Alexei Podtelezhnikovbbb60962016-04-07 01:29:44 -0400383 Also remove redundant <p> and <br> elements, replacing them with
Werner Lemberga724dcf2015-10-11 05:50:07 +0200384 proper CSS.
385
386 Globally reduce page width to 75%.
387
388 (block_header): Rename <div> class to `section'.
389
3902014-11-29 Werner Lemberg <wl@gnu.org>
391
392 [docmaker] Add `top' links after blocks.
393
394 * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
395
3962014-11-29 Werner Lemberg <wl@gnu.org>
397
398 * src/tools/docmaker/tohtml.py: Improve CSS for fields.
399
400 Make fields align horizontally relative to full line width.
401
4022014-11-29 Werner Lemberg <wl@gnu.org>
403
404 * src/tools/docmaker/tohtml.py: Fix index and TOC templates.
405
406 This thinko was introduced 2014-11-27.
407
4082014-11-28 Werner Lemberg <wl@gnu.org>
409
410 [docmaker] Format field lists with CSS.
411
412 This also simplifies the inserted HTML code.
413
414 * src/tools/docmaker/tohtml.py
415 (HtmlFormatter::print_html_field_list): Do it.
416
4172014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
418
419 Fix compiler warning to the comparison between signed and
420 unsigned variable.
421
422 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
423 between `ypos + ysize' and FT_INT_{MAX,MIN}.
424
4252014-11-28 Werner Lemberg <wl@gnu.org>
426
427 [docmaker] Replace empty `<td>' with CSS.
428
429 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
430 it.
431
4322014-11-28 Werner Lemberg <wl@gnu.org>
433
434 [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
435
436 * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
437 (source_*): Use `<div>'.
438 (HtmlFormatter::block_enter): s/<h4>/<h3>/.
439
4402014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
441
442 Fix compiler warning to conversion specifiers in debug messages.
443
444 * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
445 modifier to dump long integers.
446 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
447
4482014-11-27 Werner Lemberg <wl@gnu.org>
449
450 * src/tools/docmaker/tohtml.py: Use more CSS for index.
451
4522014-11-27 Werner Lemberg <wl@gnu.org>
453
454 [docmaker] Replace `name' attribute of `<a>' with `id'.
455
456 * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
457
4582014-11-27 Werner Lemberg <wl@gnu.org>
459
460 * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
461
462 For `Index' and `TOC' links, we now simply use the `text-align' CSS
463 property of `<td>' to enforce flush-left and flush-right,
464 eliminating the hack with an empty, full-width `<td>' element
465 inbetween.
466
467 The change also enforces the same (smaller) size for all index and
468 TOC links.
469
4702014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
471
472 * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
473 cf2font.c could not find it under `make multi' build.
474
4752014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
476
477 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
478 unrequired negative value check for `width' and `height'.
479
4802014-11-27 Werner Lemberg <wl@gnu.org>
481
482 * src/tools/docmaker/tohtml.py: More HTML table refactoring.
483
484 Replace some `<table>' tags with `<div>' to simplify structure.
485
486 Move `bgcolor' attribute to CSS.
487
488 Replace most `width' attributes with CSS. The remaining instances
489 (providing a similar effect as LaTeX's `\hfill' command) are removed
490 in a later patch.
491
4922014-11-27 Werner Lemberg <wl@gnu.org>
493
494 * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
495
4962014-11-27 Werner Lemberg <wl@gnu.org>
497
498 * src/tools/docmaker/tohtml.py: Center <table> with CSS.
499
5002014-11-27 Werner Lemberg <wl@gnu.org>
501
502 * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
503
5042014-11-27 Werner Lemberg <wl@gnu.org>
505
506 * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
507
508 This starts a series of commits into the direction of generating
509 valid HTML 5 code, especially using much more CSS.
510
5112014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
512
513 Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
514 suggested by Alexei.
515
516 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
517 negative values in `xpos' and `ypos + ysize'.
518 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
519 too negative values in `x_left' and `y_top'. Either negative
520 values in `width' and `height' are checked.
521
5222014-11-27 Werner Lemberg <wl@gnu.org>
523
524 [docmaker] Produce better HTML code.
525
526 * src/tools/docmaker/tohtml.py: Always use double quotes for
527 attribute values.
528 (source_footer): Close `td' and `tr' groups.
529
5302014-11-27 Werner Lemberg <wl@gnu.org>
531
532 Use better way to disable creation of .pyc files for `make refdoc'.
533
534 Python 2.6 was released in 2008...
535
536 * builds/freetype.mk (refdoc): Use python's `-B' option.
537
538 * builds/detect.mk (std_setup, dos_setup): Mention required python
539 version for `refdoc' target.
540
5412014-11-27 Werner Lemberg <wl@gnu.org>
542
543 * src/tools/docmaker/sources.py (re_bold, re_italic): Use
544 non-grouping parentheses.
545 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
546 Updated.
547
5482014-11-27 Werner Lemberg <wl@gnu.org>
549
550 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
551
Alexei Podtelezhnikovbbb60962016-04-07 01:29:44 -0400552 Introduced in previous change. Reported by Alexei.
Werner Lemberga724dcf2015-10-11 05:50:07 +0200553
5542014-11-26 Werner Lemberg <wl@gnu.org>
555
556 * src/*: Add checks for parameters of API functions where missing.
557
558 `API functions' are functions tagged with `FT_EXPORT_DEF'.
559
560 Besides trivial fixes, the following changes are included, too.
561
562 * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
563 error code if no service is available.
564
565 * src/base/ftinit.c (FT_Done_FreeType): Change return value for
566 invalid `library' parameter to `Invalid_Library_Handle'.
567
568 * src/base/ftobjs.c (FT_New_Size): Change return value for invalid
569 `asize' parameter to `Invalid_Argument'.
570
571 * src/base/ftoutln.c (FT_Outline_Copy): Change return value for
572 invalid `source' and `target' parameters to `Invalid_Outline'.
573 (FT_Outline_Done_Internal): Change return value for invalid
574 `outline' parameter to `Invalid_Outline'.
575
5762014-11-26 Werner Lemberg <wl@gnu.org>
577
578 * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
579
5802014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
581
Alexei Podtelezhnikovc6d99a42016-04-08 00:05:50 -0400582 * src/base/ftobjs.c (Mac_Read_POST_Resource): Additional
Werner Lemberga724dcf2015-10-11 05:50:07 +0200583 overflow check in the summation of POST fragment lengths,
584 suggested by Mateusz Jurczyk <mjurczyk@google.com>.
585
5862014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
587
588 * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
589 and fold too long tracing messages.
590
5912014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
592
593 Fix Savannah bug #43540.
594
595 * src/base/ftmac.c (parse_fond): Prevent a buffer overrun
596 caused by a font including too many (> 63) strings to store
597 names[] table.
598
5992014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
600
601 * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
602 variables to read the lengths in POST fragments. Suggested by
603 Mateusz Jurczyk <mjurczyk@google.com>.
604
6052014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
606
607 Fix Savannah bug #43539.
608
609 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
610 by a broken POST table in resource-fork.
611
6122014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
613
614 Fix Savannah bug #43538.
615
616 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
617 by a broken POST table in resource-fork.
618
6192014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
620
621 * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
622 by a broken POST table in resource-fork. Return after freeing
623 the buffered POST table when it is found to be broken.
624
6252014-11-25 Werner Lemberg <wl@gnu.org>
626
627 */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
628
6292014-11-25 Werner Lemberg <wl@gnu.org>
630
631 */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
632
6332014-11-25 Werner Lemberg <wl@gnu.org>
634
635 */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
636
6372014-11-25 Werner Lemberg <wl@gnu.org>
638
639 */*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
640
6412014-11-25 Werner Lemberg <wl@gnu.org>
642
643 */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
644
6452014-11-24 Werner Lemberg <wl@gnu.org>
646
647 [Savannah bug #43682] Adjust some renderer callbacks.
648
649 * src/raster/ftraster.c (ft_black_set_mode): Change return type to
650 `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
651
652 * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
653 for orthogonality.
654 (ft_grays_raster): Use it.
655
6562014-11-25 Werner Lemberg <wl@gnu.org>
657
658 [Savannah bug #43682] Properly handle missing return errors.
659
660 The functions in this patch *do* return non-trivial errors that must
661 be taken care of.
662
663 * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
664 (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
665 src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
666 src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
667 (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
668 (load_truetype_glyph <subglyph loop>, tt_loader_init,
669 TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
670 src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
671
6722014-11-25 Werner Lemberg <wl@gnu.org>
673
674 [Savannah bug #43682] Add/remove `void' casts to some functions.
675
676 We use a cast to indicate that we intentionally ignore a function's
677 return value. However, this doesn't apply to API functions where
678 errors can only happen for trivially invalid input.
679
680 * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
681 src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
682 (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
683 src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
684 (t42_parse_encoding): Do it.
685
6862014-11-25 Werner Lemberg <wl@gnu.org>
687
688 [Savannah bug #43682] Change some signatures to `void' return type.
689
690 * include/internal/pshints.h (PSH_Globals_SetScaleFunc),
691 include/internal/sfnt.h (TT_Get_Metrics_Func),
692 src/pshinter/pshglob.c (psh_globals_set_scale),
693 src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
694 (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
695 TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
696 TT_Save_Context): Do it.
697
698 * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
699 src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
700 (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
701 (tt_size_run_fpgm, tt_size_run_prep): Updated.
702
7032014-11-24 Werner Lemberg <wl@gnu.org>
704
705 Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
706
707 This is no longer used.
708
709 * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
710 src/sfnt/ttcmap.c: Do it.
711
7122014-11-24 Werner Lemberg <wl@gnu.org>
713
714 [sfnt] Fix Savannah bug #43680.
715
716 This adds an additional constraint to make the fix from 2013-01-25
717 really work.
718
719 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
720 Check `p' before `num_glyphs'.
721
7222014-11-24 Werner Lemberg <wl@gnu.org>
723
724 [truetype] Fix Savannah bug #43679.
725
726 * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
727 `record_size'.
728
7292014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com>
730
731 [cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
732
733 Don't cast cmap init function pointers to an incompatible type.
734
735 Without this patch, the number of parameters between declaration and
736 the real signature differs. Calling such a function results in
737 undefined behavior.
738
739 ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
740 6.5.2.2 Function calls
741 9 If the function is defined with a type that is not
742 compatible with the type (of the expression) pointed to by
743 the expression that denotes the called function, the
744 behavior is undefined.
745
746 On certain platforms (c -> js with emscripten) this causes
747 termination of execution or invalid calls because in the emscripten
748 implementation, function pointers of different types are stored in
749 different pointer arrays. Incorrect pointer type here results in
750 indexing of an incorrect array.
751
752 * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
753 src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
754 t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
755 t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
756 signature.
757
7582014-11-24 Werner Lemberg <wl@gnu.org>
759
760 [sfnt] Fix Savannah bug #43672.
761
762 * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
763 minimum table length test.
764
7652014-11-24 Werner Lemberg <wl@gnu.org>
766
767 [type1, type42] Another fix for Savannah bug #43655.
768
769 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
770 (t42_parse_charstrings): Add another boundary testing.
771
7722014-11-24 Werner Lemberg <wl@gnu.org>
773
774 [docmaker] Formatting, copyright, improved documentation.
775
776 * src/tools/docmaker/*: No code changes besides trivial
777 modifications.
778
7792014-11-22 Werner Lemberg <wl@gnu.org>
780
781 [bdf] Fix Savannah bug #43660.
782
783 * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
784 `_BDF_GLYPH_BITS'.
785
7862014-11-22 Werner Lemberg <wl@gnu.org>
787
788 [type42] Allow only embedded TrueType fonts.
789
790 This is a follow-up to Savannah bug #43659.
791
792 * src/type42/t42objs.c (T42_Face_Init): Exclusively use the
793 `truetype' font driver for loading the font contained in the `sfnts'
794 array.
795
7962014-11-22 Werner Lemberg <wl@gnu.org>
797
798 [type42] Fix Savannah bug #43659.
799
800 * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
801
802 * src/type42/t42parse.c (t42_parse_sfnts): Always set
803 `face->ttf_size' directly. This ensures a correct stream size in
804 the call to `FT_Open_Face', which follows after parsing, even for
805 buggy input data.
806 Fix error messages.
807
8082014-11-22 Werner Lemberg <wl@gnu.org>
809
810 [cff] Fix Savannah bug #43658.
811
812 * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
813 return values of point allocation routines.
814
8152014-11-22 Werner Lemberg <wl@gnu.org>
816
817 [sfnt] Fix Savannah bug #43656.
818
819 * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
820 tests.
821
8222014-11-21 Werner Lemberg <wl@gnu.org>
823
824 [type1, type42] Fix Savannah bug #43655.
825
826 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
827 (t42_parse_charstrings): Fix boundary testing.
828
8292014-11-21 Werner Lemberg <wl@gnu.org>
830
831 * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
832
8332014-11-21 Werner Lemberg <wl@gnu.org>
834
835 [ftlcdfil] Obey flow direction.
836
837 * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
838 Handle `up' flow.
839
8402014-11-21 Werner Lemberg <wl@gnu.org>
841
842 * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
843
844 This commit completes argument checks and adds support for different
845 flow directions.
846
8472014-11-21 Werner Lemberg <wl@gnu.org>
848
849 * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
850
851 This commit adds argument checks and support for different flow
852 directions.
853
8542014-11-20 Werner Lemberg <wl@gnu.org>
855
856 * src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
857
8582014-11-19 Werner Lemberg <wl@gnu.org>
859
860 Change some fields in `FT_Bitmap' to unsigned type.
861
862 This doesn't break ABI.
863
864 * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
865 `pixel_mode', and `palette_mode' unsigned types.
866
867 * src/base/ftbitmap.c: Updated.
868 (FT_Bitmap_Copy): Fix casts.
869
870 * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
871 Updated.
872
8732014-11-19 Werner Lemberg <wl@gnu.org>
874
875 Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
876
877 * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
878 for the pitch while copying data.
879 Correctly set pitch sign in target bitmap.
880
8812014-11-19 Werner Lemberg <wl@gnu.org>
882
883 Minor code improvement in `FT_Bitmap_Embolden'.
884
885 * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
886 Fix thinko.
887
8882014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com>
889
890 * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
891
8922014-11-19 Behdad Esfahbod <behdad@behdad.org>
893
894 Avoid compiler warnings on x86-64 for `FT_MulFix'.
895
896 `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
897 but several inline implementations of it in `ftcalc.h' take
898 `FT_Int32' arguments. This is causing compiler warnings on x86-64:
899 If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
900 inline implementation of this function, integer values are truncated
901 from 64bit to 32bit.
902
903 * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
904 casts.
905
9062014-11-15 Werner Lemberg <wl@gnu.org>
907
908 [sfnt] Fix Savannah bug #43597.
909
910 * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
911 bitmaps.
912
9132014-11-12 Werner Lemberg <wl@gnu.org>
914
915 [sfnt] Fix Savannah bug #43591.
916
917 * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
918 and multiplication overflow.
919
9202014-11-12 Werner Lemberg <wl@gnu.org>
921
922 [sfnt] Fix Savannah bug #43590.
923
924 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
925 Protect against addition overflow.
926
9272014-11-12 Werner Lemberg <wl@gnu.org>
928
929 [sfnt] Fix Savannah bug #43589.
930
931 * src/sfnt/sfobjs.c (woff_open_font): Protect against addition
932 overflow.
933
9342014-11-12 Werner Lemberg <wl@gnu.org>
935
936 [sfnt] Fix Savannah bug #43588.
937
938 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
939 tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
940 against overflow in additions and multiplications.
941
9422014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
943
944 [base] CORDIC improvements.
945
946 The scaling between the hypotenuse and its CORDIC approximation is
947 based on regression analysis. The smaller padding for `theta' is
Alexei Podtelezhnikovbbb60962016-04-07 01:29:44 -0400948 justified by its maximum error of less than 6.
Werner Lemberga724dcf2015-10-11 05:50:07 +0200949
950 * src/base/fttrigon.c (ft_trig_downscale): Borrow code from
951 ./ftcalc.c (ft_multo64), change linear intercept.
952 (ft_trig_pseudo_polarize): Decrease `theta' padding.
953
9542014-11-09 Werner Lemberg <wl@gnu.org>
955
956 * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
957
958 One more place to check whether `radius' is zero.
959
960 Problem reported by Marco Wertz <marco.wertz@gmx.de>.
961
9622014-11-07 Werner Lemberg <wl@gnu.org>
963
964 [bdf] Fix Savannah bug #43535.
965
966 * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
967 character more than `strncmp'.
968 s/ft_strncmp/_bdf_strncmp/ everywhere.
969
9702014-11-06 Werner Lemberg <wl@gnu.org>
971
972 [pcf] Fix Savannah bug #43548.
973
974 * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
975 and column values.
976
9772014-11-06 Werner Lemberg <wl@gnu.org>
978
979 [pcf] Fix Savannah bug #43547.
980
981 * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
982 values.
983
9842014-11-06 Werner Lemberg <wl@gnu.org>
985
986 * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
987
9882014-11-03 Infinality <infinality@infinality.net>
989
990 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
991
992 The previous commit deteriorates rendering of DejaVu and similar
993 fonts; this gets compensated with this rule.
994
9952014-11-03 Werner Lemberg <wl@gnu.org>
996
997 * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
998
999 Before this patch, it was impossible to ever call DELTAP[123] in
1000 subpixel hinting mode as described in the ClearType whitepaper; it
1001 only worked if in `compatibility mode'. However, compatibility mode
1002 essentially disables SHPIX, completely ruining hinting of
1003 ttfautohint output, for example.
1004
1005 We now follow the whitepaper more closely so that DELTAP[123]
1006 instructions for touched points in the non-subpixel direction are
1007 executed.
1008
10092014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
1010
1011 [smooth] Improve code readability.
1012
1013 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
1014
10152014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
1016
1017 [smooth] Reduce outline translations during rendering.
1018
1019 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
1020 virtually by modifying cbox, actually translate outline if cumulative
1021 shift is not zero.
1022
10232014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com>
1024
1025 [smooth] Fix Savannah bug #35604 (cont'd).
1026
1027 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
1028 casts that became unnecessary after the variable type upgrades.
1029
10302014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
1031
1032 [smooth] Improve code readability.
1033
1034 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
1035
10362014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
1037
1038 Unify hypotenuse approximations.
1039
1040 * include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
1041 * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
1042 * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
1043
10442014-10-25 Werner Lemberg <wl@gnu.org>
1045
1046 [cff] Test valid darkening parameter macros in `ftoption.h'.
1047
1048 We no longer need an otherwise unused typedef that can cause a gcc
1049 warning.
1050 Problem reported by Alexei.
1051
1052 * src/cff/cffobjs.c (cff_driver_init): Use
1053 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
1054 (SET_DARKENING_PARAMETERS): Removed.
1055 Compile time tests are now ...
1056
1057 * devel/ftoption.h, include/config/ftoption.h: ... here.
1058
10592014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com>
1060
1061 Improve flat corner definition.
1062
1063 * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
1064 distance with the alpha max plus beta min algorithm.
1065 * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
1066 metric.
1067
10682014-10-23 David Weiß <David.Weiss@ptvgroup.com>
1069
1070 [build] Improve property file for vc2010.
1071
1072 User-defined properties should be empty by default to prevent linker
1073 failures.
1074
1075 * builds/windows/vc2010/freetype.user.props,
1076 builds/windows/vc2010/freetype.vcxproj:
1077 s/OptionsDirectory/UserOptionDirectory/.
1078 Comment out all user options.
1079
10802014-10-23 Werner Lemberg <wl@gnu.org>
1081
1082 [cff] Work around bug in preprocessor of MSVC 2010.
1083
1084 We have been hit by
1085
1086 https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
1087
1088 * devel/ftoption.h, include/config/ftoption.h: Replace
1089 `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
1090 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
1091
1092 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no
1093 longer need double expansion.
1094 (SET_DARKENING_PARAMETERS_0): Renamed to ...
1095 (SET_DARKENING_PARAMETERS): ... this.
1096 Update call.
1097
10982014-10-20 Werner Lemberg <wl@gnu.org>
1099
1100 [sbit] Minor fixes.
1101
1102 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
1103 Accept overlay format also, but emit warning message in that case.
1104 (tt_sbit_decoder_load_metrics): Add missing newline to error
1105 message.
1106 (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
1107 7.1) to the list of unsupported formats.
1108
11092014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com>
1110
1111 [truetype] Clean up bytecode rounding.
1112
1113 Zero distance does not have to be treated specially if you follow
1114 specifications and check the sign as the very last step of rounding.
1115
1116 * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
1117 Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
1118 macros when available, do not check for non-zero distance.
1119 (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
1120 if sign changed.
1121
11222014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
1123
1124 [truetype] Unwrap engine compensation settings.
1125
1126 * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
1127
11282014-10-18 David Weiß <David.Weiss@ptvgroup.com>
1129
1130 [build] Add property file to vc2010 project.
1131
1132 This simplifies custom build configurations, especially for
1133 automated build environments.
1134
1135 * builds/windows/vc2010/freetype.user.props: New configuration file.
1136
1137 * builds/windows/vc2010/freetype.vcxproj: Include
1138 `freetype.user.props' and use its data fields.
1139
1140 * builds/windows/vc2010/index.html: Updated.
1141
11422014-10-18 Werner Lemberg <wl@gnu.org>
1143
1144 [autofit] Add blue-zone support for Telugu.
1145
1146 This essentially moves the Telugu script from the `Indic' hinter to
1147 the `Latin' hinter.
1148
1149 Note that this is a first shot and quite certainly needs
1150 refinements.
1151
1152 * src/autofit/afblue.dat: Add blue zone data for Telugu.
1153
1154 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1155
1156 * src/autofit/afscript.h: Add Telugu standard characters and move
1157 data out of AF_CONFIG_OPTION_INDIC block.
1158
1159 * src/autofit/afranges.c: Move Telugu data out of
1160 AF_CONFIG_OPTION_INDIC block.
1161
1162 * src/autofit/afstyles.h: Update Telugu data; in particular, use
1163 AF_WRITING_SYSTEM_LATIN.
1164
11652014-10-18 David Wimsey <david@wimsey.us>
1166
1167 [cmake] Add iOS build support.
1168 From Savannah patch #8497.
1169
1170 * builds/cmake/iOS.cmake: New file. Universal binaries are built
1171 with both 32 and 64 bit arm architectures.
1172
1173 * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
1174 toolchain. Possible values are `OS' to build on iOS, or
1175 `SIMULATOR' to build on APPLE.
1176
11772014-10-16 Behdad Esfahbod <behdad@behdad.org>
1178 Werner Lemberg <wl@gnu.org>
1179
1180 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
1181
1182 * devel/ftoption.h, include/config/ftoption.h
1183 (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
1184
1185 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
1186 SET_DARKENING_PARAMETERS_0): New macros.
1187 (cff_driver_init): Use new macros.
1188
11892014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
1190
1191 [truetype] Limit delta shift range.
1192
1193 The valid range for delta shift is zero through six. Negative values
1194 are invalid according to
1195
1196 https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
1197
1198 * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
1199 * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
1200 is out of range.
1201 (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
1202
12032014-10-16 Werner Lemberg <wl@gnu.org>
1204
1205 A better fix for Savannah bug #43392.
1206 Suggested by Doug Felt <dougfelt@gmail.com>.
1207
1208 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
1209 `vertAdvance' to zero...
1210
1211 * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
1212 value for `vertAdvance' based on `linearVertAdvance' in case
1213 `vertAdvance' is zero. Note that the previous computed ad-hoc value
1214 for `linearVertAdvance' was apparently not tested in a real-life
1215 situation.
1216
12172014-10-14 David Weiß <David.Weiss@ptvgroup.com>
1218
1219 [build] Better optimization settings for vc2010 solution file.
1220
1221 * builds/windows/vc2010/freetype.sln,
1222 builds/windows/vc2010/freetype.vcxproj: Updated.
1223
12242014-10-14 Werner Lemberg <wl@gnu.org>
1225
Alexei Podtelezhnikov983fb0d2017-01-24 23:56:59 -05001226 [autofit] Adjust Devanagari character range.
Werner Lemberga724dcf2015-10-11 05:50:07 +02001227
1228 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
1229 are common to all other Indic scripts.
1230
12312014-10-12 Werner Lemberg <wl@gnu.org>
1232
1233 [sfnt] Fix Savannah bug #43392.
1234
1235 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
1236 vertical metrics uninitialized.
1237
12382014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
1239
1240 [base] Small bbox correction.
1241
1242 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
1243 instead of initial point that could be `off' in conic outlines.
1244
12452014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
1246
1247 [base] Fix Savannah bug #43356.
1248
1249 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
1250 of implicit `to'.
1251 (BBox_Line_To): New emitter that does not update bbox.
1252
12532014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
1254
1255 [base] Introduce and use new macro `FT_UPDATE_BBOX'
1256
1257 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
1258 (FT_Outline_Get_BBox): Use it here.
1259
12602014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
1261
1262 [base] Significant optimization of `ft_div64by32'
1263
1264 We shift as many bits as we can into the high register, perform
1265 32-bit division with modulo there, then work through the remaining
1266 bits with long division. This optimization is especially noticeable
1267 for smaller dividends that barely use the high register.
1268
1269 * src/base/ftcalc.c (ft_div64by32): Updated.
1270
12712014-10-02 Dave Arnold <darnold@adobe.com>
1272
1273 [cff] Fix Savannah bug #43271.
1274
1275 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
1276 detection to use logarithms and clamp `scaledStem'.
1277
12782014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
1279
1280 * src/base/ftcalc.c: Remove miscellaneous type casts.
1281
12822014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
1283
1284 [base] Use more common `FT_MSB' implementation with masks.
1285
1286 * src/base/ftcalc.c (FT_MSB): Updated.
1287
12882014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
1289
1290 [base] Clean up.
1291
1292 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
1293 code.
1294
12952014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
1296
1297 [base] Avoid unnecessary long division.
1298
1299 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
1300 lack thereof are predicted accurately.
1301
1302 * src/base/ftcalc.c (ft_div64by32): Improve readability.
1303 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
1304 when multiplication stayed within 32 bits.
1305
13062014-09-24 Werner Lemberg <wl@gnu.org>
1307
1308 [autofit] Minor clean-ups.
1309
1310 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
1311
1312 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1313 af_glyph_hints_align_strong_points): Updated.
1314
1315 * src/autofit/aflatin.c (af_latin_hints_link_segments,
1316 af_latin_hints_compute_segments), src/autofit/afcjk.c
1317 (af_cjk_hints_link_segments), src/autofit/aflatin2.c
1318 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
1319 There are no longer fake segments since more than 10 years...
1320
13212014-09-22 Werner Lemberg <wl@gnu.org>
1322
1323 [autofit] Minor code streamlining.
1324
1325 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
1326 initialization.
1327
13282014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
1329
1330 * src/base/ftcalc.c: Harmonize code.
1331
13322014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
1333
1334 [base] Tighten the overflow check in `FT_MulDiv'.
1335
1336 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
1337
13382014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
1339
1340 Fix Savannah bug #43153.
1341
1342 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
1343 overflow in `divider'.
1344
13452014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
1346
1347 [base] Tighten the overflow check in `FT_DivFix'.
1348
1349 This fixes a 13-year old bug. The original overflow check should have
1350 been updated when rounding was introduced into this function
1351 (c2cd00443b).
1352
1353 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
1354 * include/freetype.h (FT_DivFix): Updated documentation.
1355
13562014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
1357
1358 [base] Tighten the overflow check in `FT_MulFix'.
1359
1360 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
1361
13622014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
1363
1364 [truetype] Shortcut ppem calculations for square pixels.
1365
1366 * src/truetype/ttinterp.h (TT_ExecContextRec): New field
1367 `cur_ppem_func' with a function pointer.
1368 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
1369 depending on the pixel geometry to either...
1370 (Current_Ppem_Stretched): ... this for stretched pixels.
1371 (Current_Ppem): ... or this for square pixels.
1372 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
1373
13742014-08-31 Behdad Esfahbod <behdad@behdad.org>
1375
1376 Don't use `register' keyword. Fixes compiler warnings.
1377
1378 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
1379 * src/gzip/inftrees.c (huft_build): Ditto.
1380 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
1381
13822014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
1383
1384 [truetype] Optimize DELTAP and DELTAC.
1385
1386 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
1387 calculations outside of the loop.
1388
13892014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
1390
1391 Fix Savannah bug #43033.
1392
1393 * include/config/ftconfig.h, builds/unix/ftconfig.in,
1394 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
1395 64-bit type is `long'.
1396
13972014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
1398
1399 [base] Small optimization of `FT_MulFix'.
1400
1401 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
1402 32-bit calculations.
1403
14042014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
1405
1406 [base] Use unsigned calculation in `FT_MulDiv'.
1407
1408 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
1409
14102014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
1411
1412 [base] Remove truncation in `FT_DivFix'.
1413
1414 * src/base/ftcalc.c (FT_DivFix): Updated.
1415
14162014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
1417
1418 Minor refactoring.
1419
1420 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
1421
14222014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
1423
1424 Turn FT_MSB into a macro when using gcc builtins.
1425
1426 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
1427
14282014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
1429
1430 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
1431
1432 * src/base/ftbbox.c (BBox_Cubic_Check): Update.
Alexei Podtelezhnikovbbb60962016-04-07 01:29:44 -04001433 (update_cubic_max): Replace with...
Werner Lemberga724dcf2015-10-11 05:50:07 +02001434 (cubic_peak): ... this, which now handles upscaling.
1435
14362014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
1437
1438 [base] Handle collapsed outlines to avoid undefined FT_MSB.
1439
1440 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
1441
14422014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
1443
1444 [base] Restore FT_MulFix inlining.
1445
1446 * include/freetype.h (FT_MulFix): Unconditionally defined.
1447
1448 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
1449
1450 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
1451 which conditionally replaces the function with an inline version
1452 through the macro.
1453
14542014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
1455
1456 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
1457
14582014-07-26 Werner Lemberg <wl@gnu.org>
1459
1460 [cff] Fix typo.
1461
1462 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
1463 offsets in third quadrant.
1464
1465 Reported by maks <maksqwe1@ukr.net>.
1466
14672014-07-17 Werner Lemberg <wl@gnu.org>
1468
1469 Fix Savannah bug #42788.
1470
1471 * src/pfr/pfrobjs.c: Include `ftcalc.h'.
1472
14732014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
1474
1475 Replace `ft_highpow2' function.
1476
1477 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
1478 `ft_highpow2'.
1479
1480 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
1481 it.
1482
14832014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
1484
1485 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
1486
14872014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
1488
1489 [base] Move assembler code back in the source file.
1490
1491 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
1492
1493 * include/config/ftconfig.h, builds/unix/ftconfig.in,
1494 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
1495
1496 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
1497
14982014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
1499
1500 [base] Further clean up color bitmap conversion.
1501
1502 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
1503 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
1504
15052014-07-13 Werner Lemberg <wl@gnu.org>
1506
1507 [truetype] Improve handling of buggy `prep' tables.
1508
1509 In case of an error in the `prep' table, no longer try to execute it
1510 again and again. This makes FreeType handle endless loops in buggy
1511 fonts much faster.
1512
1513 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
1514 and `cvt_ready' are now negative if not initialized yet, otherwise
1515 they indicate the error code of the last run.
1516
1517 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
1518 tt_size_done_bytecode, tt_size_init_bytecode,
1519 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
1520 Updated.
1521
1522 * src/truetype/ttgload.c (tt_loader_init): Updated.
1523 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
1524 and `prep' only if we are in the `glyf' table.
1525
15262014-07-12 Werner Lemberg <wl@gnu.org>
1527
1528 * builds/vms/ftconfig.h: Synchronize.
1529 Problem reported by Alexei.
1530
15312014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
1532
1533 [base] Clean up bitmap conversion.
1534
1535 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
1536 appropriate FT_DivFix and remove superfluous upscaling.
1537
15382014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
1539
1540 [base] Small optimization of the ancient code.
1541
1542 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
1543 condition for direct 32-bit calculations.
1544
15452014-06-27 Werner Lemberg <wl@gnu.org>
1546
1547 Fix Apple standard glyph names.
1548
1549 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
1550 `tools/glnames.py'
1551
1552 Problem reported by Adam Twardoch <adam@fontlab.com>.
1553
15542014-06-17 Werner Lemberg <wl@gnu.org>
1555
1556 Partially revert commit from 2014-06-13.
1557
1558 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
1559 declaration of `p_first' and `p_last' out of the loop.
1560
15612014-06-17 Werner Lemberg <wl@gnu.org>
1562
1563 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
1564
1565 This simplifies cross-compiling.
1566
15672014-06-13 Werner Lemberg <wl@gnu.org>
1568
1569 Fix more compiler warnings.
1570 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
1571
1572 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1573 Make integer constant unsigned.
1574
1575 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
1576 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
1577 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
1578 casts.
1579
15802014-06-13 Werner Lemberg <wl@gnu.org>
1581
1582 Fix compiler warnings.
1583 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
1584
1585 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
1586 src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
1587 `unsigned' issues.
1588
1589 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
1590 happy.
1591
1592 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
1593 for `fir'.
1594 Fix `signed' vs. `unsigned' issues.
1595
1596 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
1597 (WRITE_USHORT, WRITE_ULONG): Add proper casts.
1598
1599 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
1600
1601 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
1602 and `B2'.
1603
16042014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
1605
1606 [cmake] Add option to build OS X framework.
1607
1608 * CMakeLists.txt: Update accordingly.
1609
1610 * builds/mac/freetype-Info.plist: New file.
1611
16122014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
1613
1614 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
1615
16162014-05-11 Werner Lemberg <wl@gnu.org>
1617
1618 [autofit] Fix variable initializations.
1619
1620 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
1621 values to `in_dir' and `out_dir' for all points.
1622
16232014-05-11 Werner Lemberg <wl@gnu.org>
1624
1625 [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
1626
1627 Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
1628
1629 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
1630 finding first non-near point.
1631 Properly initialize non-near point deltas.
1632
16332014-05-01 Werner Lemberg <wl@gnu.org>
1634
1635 [autofit] Add blue-zone support for Devanagari.
1636
1637 This essentially moves the Devanagari script from the `Indic' hinter
1638 to the `Latin' hinter. Thanks to Girish Dalvi
1639 <girish.dalvi@gmail.com> for guidance with blue zone characters!
1640
1641 * src/autofit/afblue.dat: Add blue zone data for Devanagari.
1642
1643 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1644
1645 * src/autofit/afscript.h: Add Devanagari standard characters and
1646 move data out of AF_CONFIG_OPTION_INDIC block.
1647
1648 * src/autofit/afranges.c: Move Devanagari data out of
1649 AF_CONFIG_OPTION_INDIC block.
1650 Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
1651
1652 * src/autofit/afstyles.h: Update Devanagari data; in particular, use
1653 AF_WRITING_SYSTEM_LATIN.
1654
16552014-05-01 Werner Lemberg <wl@gnu.org>
1656
1657 [autofit] Fix handling of neutral blue zones in stems.
1658
1659 * src/autofit/afhints.h (AF_Edge_Flags): New value
1660 `AF_EDGE_NEUTRAL'.
1661
1662 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
1663 neutral blue zones with AF_EDGE_NEUTRAL.
1664 (af_latin_hint_edges): Skip neutral blue zones if necessary.
1665
16662014-04-28 Werner Lemberg <wl@gnu.org>
1667
1668 [autofit] Introduce neutral blue zones to the latin module.
1669
1670 Such blue zones match either the top or the bottom of a contour. We
1671 need them for scripts where accent-like elements directly touch the
1672 base character (for example, some vowel signs in Devanagari, cf.
1673 U+0913 or U+0914).
1674
1675 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
1676 property.
1677
1678 * src/autofit/afblue.h: Regenerated.
1679
1680 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
1681 (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
1682
1683 * src/autofit/aflatin.c (af_latin_metrics_init_blues,
1684 af_latin_hints_compute_blue_edges): Handle neutral blue zones.
1685
16862014-04-25 Werner Lemberg <wl@gnu.org>
1687
1688 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
1689
1690 Using input glyph coverage data is simply wrong.
1691
1692 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
1693 Mantas MikulÄ—nas <grawity@gmail.com>.
1694
16952014-04-23 Werner Lemberg <wl@gnu.org>
1696
1697 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
1698
1699 This spot has been missed while introducing support for various
1700 drop-out modes years ago (including no drop-out mode, which this
1701 commit fixes).
1702
1703 Problem reported by Patrick Thomas <pthomas505@gmail.com>.
1704
17052014-04-22 Werner Lemberg <wl@gnu.org>
1706
1707 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
1708
17092014-04-20 Werner Lemberg <wl@gnu.org>
1710
1711 [autofit] Fix Savannah bug #42148.
1712
1713 The adaptation of the cjk auto-hinter module to blue stringsets in
1714 2013-08-25 had three severe bugs. Mea culpa.
1715
1716 1. Contrary to the latin auto-hinter, characters for reference and
1717 overshoot values of a blue zone are specified separately. Due to
1718 the screwed-up change it didn't work at all.
1719
1720 2. A boolean comparison was erroneously replaced with a cast,
1721 causing invalid results with the `^' operator later on. The
1722 visual artifact caused by this problem is the topic of the bug
1723 report.
1724
1725 3. Two flag values were inverted, causing incorrect assignment of
1726 reference and overshoot values.
1727
1728 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
1729 syntax to have both reference and overshoot characters in a single
1730 string. This is error #1.
1731 Add extensive comments.
1732
1733 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
1734 longer used.
1735 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
1736 This is error #3.
1737
1738 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1739
1740 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
1741 Use character `|' to separate characters for reference and overshoot
1742 values.
1743 Improve tracing messages, synchronizing them with the latin
1744 auto-hinter.
1745 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
1746 This is error #2.
1747 (af_cjk_align_linked_edge): Add tracing message.
1748
1749 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
1750 used.
1751
17522014-04-17 Werner Lemberg <wl@gnu.org>
1753
1754 [autofit] More coverage fixes for complex scripts.
1755
1756 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
1757 of GSUB lookups into output coverage. Otherwise, ligatures are not
1758 handled properly.
1759 Don't check blue zone characters for default coverage.
1760
17612014-04-17 Werner Lemberg <wl@gnu.org>
1762
1763 Make `FT_Get_SubGlyph_Info' actually work.
1764
1765 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
1766 if there is no error.
1767
17682014-04-15 Werner Lemberg <wl@gnu.org>
1769
1770 [afblue.pl]: Minor improvements.
1771
1772 * src/tools/afblue.pl: Allow whitespace before comments.
1773 Ignore whitespace in strings.
1774
17752014-04-14 Werner Lemberg <wl@gnu.org>
1776
1777 [autofit] Improve coverage handling.
1778
1779 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
1780 appearing in the GPOS table if we are processing the default
1781 coverage.
1782
Alexei Podtelezhnikov04e7c742016-06-04 23:05:59 -040017832014-04-13 David Weber <weber.aulendorf@googlemail.com>
Werner Lemberga724dcf2015-10-11 05:50:07 +02001784
1785 [smooth] Fix stand-alone compilation.
1786
1787 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
1788
17892014-04-12 Werner Lemberg <wl@gnu.org>
1790
1791 [autofit] Redesign the recognition algorithm of strong points.
1792
1793 In particular, local extrema without horizontal or vertical segments
1794 are better recognized:
1795
1796 + A + D
1797 \ /
1798 \ /
1799 \ /
1800 \ /
1801 \ + C
1802 \ /
1803 B +/
1804
1805 If the distances AB and CD are large, point B wasn't previously
1806 detected as an extremum since the `ft_corner_is_flat' function
1807 `swallowed' BC regardless of its direction, tagging point B as weak.
1808 The next iteration started at B and made `ft_corner_is_flat' swallow
1809 point C, tagging it as weak also, et voilà.
1810
1811 To improve that, another pass gets now performed before calling
1812 `ft_corner_is_flat' to improve the `topology' of an outline: A
1813 sequence of non-horizontal or non-vertical vectors that point into
1814 the same quadrant are handled as a single, large vector.
1815
1816 Additionally, distances of near points are now accumulated, which
1817 makes the auto-hinter handle them as if they were prepended to the
1818 next non-near vector.
1819
1820 This generally improves the auto-hinter's rendering results.
1821
1822 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
1823
1824 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
1825 `AF_FLAG_NEAR'.
1826
18272014-04-05 Werner Lemberg <wl@gnu.org>
1828
1829 [autofit] Improve scoring algorithm for identifying stems.
1830
1831 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
1832
1833 The new algorithm takes care of the width of stems: If the distance
1834 between two segments is larger than the largest stem width, the
1835 demerits quickly increase for larger distances. This improves
1836 hinting of slanted fonts (especially if the inner parts of serifs
1837 have non-horizontal `shoulders'), avoiding false stem links.
1838
1839 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
1840 stem width (if available) to compute better demerits for distances
1841 between stems.
1842 (af_latin_hints_detect_features): Pass stem width array and array
1843 size.
1844 (af_latin_metrics_init_widths): Updated to use original algorithm.
1845 (af_latin_hints_apply): Updated to use new algorithm.
1846
1847 * src/autofit/aflatin.h: Updated.
1848 * src/autofit/afcjk.c: Updated.
1849
18502014-04-03 Werner Lemberg <wl@gnu.org>
1851
1852 Don't require `gzip' module for `sfnt'.
1853
1854 Reported by Preet <prismatic.project@gmail.com>.
1855
1856 * src/sfnt/sfobjs.c (woff_open_font): Guard use of
1857 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
1858
18592014-03-27 Werner Lemberg <wl@gnu.org>
1860
1861 Fix Savannah bug #38235.
1862
1863 Work around a bug in pkg-config version 0.28 and earlier: If a
1864 variable value gets surrounded by doublequotes (in particular values
1865 for the `prefix' variable), the prefix override mechanism fails.
1866
1867 * builds/unix/freetype2.in: Don't use doublequotes.
1868 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
1869 names with backslashes.
1870
18712014-03-24 Werner Lemberg <wl@gnu.org>
1872
1873 Fix Savannah bug #41946.
1874
1875 Based on a patch from Marek Kašík <mkasik@redhat.com>.
1876
1877 * builds/unix/configure.raw (LIBS_CONFIG): Remove.
1878 * builds/unix/freetype-config.in (libs): Hard-code value.
1879 * builds/unix/unix-def.in: Updated.
1880
18812014-03-22 Werner Lemberg <wl@gnu.org>
1882
1883 Another revert for the change from 2014-03-18.
1884
1885 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
1886
1887 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
1888 gets always exported.
1889
18902014-03-20 Werner Lemberg <wl@gnu.org>
1891
1892 CMakeLists.txt: Another fix for include directories.
1893
1894 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
1895
18962014-03-19 Werner Lemberg <wl@gnu.org>
1897
1898 CMakeLists.txt: Fix include directories.
1899
1900 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
1901
19022014-03-19 Werner Lemberg <wl@gnu.org>
1903
1904 Partially revert last commit.
1905
1906 Found by Alexei.
1907
1908 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
1909 those variables is plain wrong, since we are in a loop.
1910
19112014-03-18 Sean McBride <sean@rogue-research.com>
1912 Werner Lemberg <wl@gnu.org>
1913
1914 Fix clang warnings.
1915
1916 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
1917 some variables.
1918
1919 * src/base/ftcalc.c (FT_MulFix): Only use code if
1920 `FT_MULFIX_INLINED' is not defined.
1921
1922 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
1923 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
1924 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
1925 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
1926 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
1927 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
1928 function static.
1929
1930 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
1931 code.
1932
19332014-03-17 Werner Lemberg <wl@gnu.org>
1934
1935 Fix Savannah bug #41869.
1936
1937 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
1938 validate glyph indices returned by
1939 `hb_ot_layout_lookup_collect_glyphs'.
1940
1941 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
1942
1943 * docs/CHANGES: Updated.
1944
19452014-03-14 Werner Lemberg <wl@gnu.org>
1946
1947 * builds/unix/configure.raw: Don't show error messages of `which'.
1948
19492014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
1950
1951 Fix cppcheck 1.64 warning.
1952
1953 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
1954 dereference in case of error.
1955
19562014-03-09 Sean McBride <sean@rogue-research.com>
1957
1958 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
1959
19602014-03-06 Werner Lemberg <wl@gnu.org>
1961
1962 * Version 2.5.3 released.
1963 =========================
1964
1965
1966 Tag sources with `VER-2-5-3'.
1967
1968 * docs/VERSION.DLL: Update documentation and bump version number to
1969 2.5.3.
1970
1971 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1972 builds/windows/vc2005/index.html,
1973 builds/windows/vc2008/freetype.vcproj,
1974 builds/windows/vc2008/index.html,
1975 builds/windows/vc2010/freetype.vcxproj,
1976 builds/windows/vc2010/index.html,
1977 builds/windows/visualc/freetype.dsp,
1978 builds/windows/visualc/freetype.vcproj,
1979 builds/windows/visualc/index.html,
1980 builds/windows/visualce/freetype.dsp,
1981 builds/windows/visualce/freetype.vcproj,
1982 builds/windows/visualce/index.html,
1983 builds/wince/vc2005-ce/freetype.vcproj,
1984 builds/wince/vc2005-ce/index.html,
1985 builds/wince/vc2008-ce/freetype.vcproj,
1986 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
1987
1988 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
1989
1990 * builds/unix/configure.raw (version_info): Set to 17:2:11.
1991 * CMakeLists.txt (VERSION_PATCH): Set to 3.
1992 * docs/CHANGES: Updated.
1993
19942014-03-06 Werner Lemberg <wl@gnu.org>
1995
1996 Fixes for compilation with C++.
1997
1998 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
1999 (af_get_coverage): Updated.
2000 (COVERAGE): Add cast.
2001
20022014-03-06 Sean McBride <sean@rogue-research.com>
2003
2004 Remove more clang analyzer warnings.
2005
2006 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
2007 (TT_Load_Glyph): Remove dead stores.
2008
20092014-03-05 Werner Lemberg <wl@gnu.org>
2010
2011 * builds/unix/configure.raw: Simplify.
2012
20132014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2014
2015 Fix a bug in configure in library dependency setting
2016 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
2017
2018 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
2019
20202014-03-04 Werner Lemberg <wl@gnu.org>
2021
2022 Minor fix for `make devel'.
2023
2024 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
2025 pkg-config for bzip2 since not all GNU/Linux distributions have
2026 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
2027 normally).
2028
20292014-03-04 Sean McBride <sean@rogue-research.com>
2030
2031 Fix several clang static analyzer dead store warnings.
2032
2033 * src/autofit/afhints.c (af_glyph_hints_reload,
2034 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
2035
2036 * src/bdf/bdflib.c (bdf_font_load): Ditto.
2037
2038 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
2039 psh_glyph_interpolate_other_points): Ditto.
2040
2041 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
2042
20432014-03-03 Werner Lemberg <wl@gnu.org>
2044
2045 Rewrite library option handling in `configure'.
2046
2047 o Introduce `auto' value for `--with-XXX' library options; this is
2048 now the default.
2049
2050 o First use `pkg-config' for library detection, then fall back to
2051 other tests.
2052
2053 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
2054 --with-harfbuzz): Rewrite.
2055 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
2056 variables to collect data for `freetype2.pc' and `freetype-config'.
2057 (FT2_EXTRA_LIBS): Renamed to ...
2058 (ft2_extra_libs): This since it gets no longer substituted.
2059 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
2060 New output variables, replacing `XXX_PKG' and `LIBXXX'.
2061 Add notice at the end of `configure' showing the library
2062 configuration.
2063
2064 * builds/unix/freetype-config.in (--static): New command line
2065 option.
2066 (libs): Updated.
2067 (staticlibs): New variable, to be used if `--static' is given.
2068 * docs/freetype-config.1: Document `--static'.
2069
2070 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
2071
20722014-03-01 Werner Lemberg <wl@gnu.org>
2073
2074 Avoid `long long' warnings with older gcc compilers.
2075 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
2076
2077 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
2078 versions < 4.6. This is especially needed for Max OS X since this
2079 OS runs a gcc variant (or emulation) based on version 4.2.1.
2080
20812014-03-01 Werner Lemberg <wl@gnu.org>
2082
2083 * docs/INSTALL.CROSS: Revised and updated.
2084
20852014-03-01 Werner Lemberg <wl@gnu.org>
2086
2087 Make `make clean' remove `freetype2.pc'.
2088
2089 This is a generated file at build time, not configure time.
2090
2091 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
2092 (CLEAN): This variable.
2093
20942014-03-01 Werner Lemberg <wl@gnu.org>
2095
2096 Use pkg-config for detecting libpng and libbz2 also.
2097
2098 * builds/unix/configure.raw (HAVE_PKG): New variable.
2099 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
2100 Search for libpng using `pkg-config'.
2101 Fix definition of `LIBHARFBUZZ' variable.
2102 * builds/unix/freetype-config.in ($libs): Updated.
2103 * builds/unix/freetype2.in: Add `URL' field.
2104 Update `Requires.private' and `Libs.private'.
2105 * builds/unix/unix-def.in: Updated.
2106
21072014-03-01 Werner Lemberg <wl@gnu.org>
2108
2109 Add configure support for HarfBuzz.
2110
2111 * builds/unix/pkg.m4: New file.
2112 * builds/unix/configure.raw: Search for libharfbuzz using
2113 `pkg-config'.
2114 Add `--without-harfbuzz' option.
2115 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
2116 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
2117 HarfBuzz.
2118
Alexei Podtelezhnikov22a7f5b2017-09-07 22:36:02 -04002119 * docs/INSTALL.UNIX: Document interdependency of FreeType with
Werner Lemberga724dcf2015-10-11 05:50:07 +02002120 HarfBuzz.
2121
21222014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
2123
2124 [cff] Math simplifications.
2125
2126 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
2127 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
2128
21292014-02-28 Dave Arnold <darnold@adobe.com>
2130
2131 [cff] Fix Savannah bug #41697, part 2.
2132
2133 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
2134 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
2135 a subroutine if no subroutines exist. This is an error but should
2136 not trigger an assert. Split the assert to account for this.
2137
21382014-02-28 Dave Arnold <darnold@adobe.com>
2139
2140 [cff] Fix Savannah bug #41697, part 1.
2141
2142 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
2143 invalid. In this case, it is not safe to use the length of
2144 `hStemHintArray'; the exception has already been recorded in
2145 `hintMask'.
2146
21472014-02-26 Werner Lemberg <wl@gnu.org>
2148
2149 [sfnt] Fix Savannah bug #41696.
2150
2151 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
2152 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
2153
21542014-02-26 Werner Lemberg <wl@gnu.org>
2155
2156 [winfnt] Fix Savannah bug #41694.
2157
2158 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
2159
21602014-02-26 Werner Lemberg <wl@gnu.org>
2161
2162 [cff] Fix Savannah bug #41693.
2163
2164 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
2165
21662014-02-26 Werner Lemberg <wl@gnu.org>
2167
2168 [bdf] Fix Savannah bug #41692.
2169
2170 bdflib puts data from the input stream into a buffer in chunks of
2171 1024 bytes. The data itself gets then parsed line by line, simply
2172 increasing the current pointer into the buffer; if the search for
2173 the final newline character exceeds the buffer size, more data gets
2174 read.
2175
2176 However, in case the current line's end is very near to the buffer
2177 end, and the keyword to compare with is longer than the current
2178 line's length, an out-of-bounds read might happen since `memcmp'
2179 doesn't stop properly at the string end.
2180
2181 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
2182 stop at string ends.
2183
21842014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2185
2186 [autofit] Fix `make multi' compilation.
2187
2188 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
2189
21902014-02-19 Werner Lemberg <wl@gnu.org>
2191 Simon Bünzli <zeniko@gmail.com>
2192
2193 Fix Savannah bug #32902.
2194
2195 Patch taken from
2196
2197 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
2198
2199 with slight modifications.
2200
2201 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
2202 handle fonts that incorrectly use \r at the beginning of an eexec
2203 block.
2204
22052014-02-19 Simon Bünzli <zeniko@gmail.com>
2206
2207 Fix Savannah bug #41590.
2208
2209 * src/type1/t1load.c (parse_encoding): Protect against invalid
2210 number.
2211
22122014-02-12 Dave Arnold <darnold@adobe.com>
2213
2214 [cff] Optimize by using `FT_MulDiv'.
2215 Suggested by Alexei.
2216
2217 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
2218
22192014-02-12 Werner Lemberg <wl@gnu.org>
2220
2221 Fix Savannah bug #41465.
2222
2223 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
2224 (DISTCLEAN): Remove `freetype-config'.
2225
22262014-02-08 Sean McBride <sean@rogue-research.com>
2227
2228 Fix clang static analyzer and compiler warnings.
2229
2230 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
2231 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
2232 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
2233 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
2234 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
2235 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
2236 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
2237 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
2238 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
2239 code.
2240
2241 * src/autofit/afmodule.c (af_property_get_face_globals,
2242 af_property_set, af_property_get), src/base/ftbitmap.c
2243 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
2244
2245 * src/base/ftobjs.c (ft_remove_renderer): Protect against
2246 library == NULL.
2247 (ft_property_do): Make function static.
2248
2249 * src/base/ftrfork.c: Include `ftbase.h'.
2250
2251 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
2252 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
2253 (T1_Compute_Max_Advance): Avoid compiler warning.
2254
2255 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
2256 variable.
2257
22582014-02-08 Werner Lemberg <wl@gnu.org>
2259
2260 Fix Windows build directories.
2261
2262 The build target is now `windows' instead of `win32'.
2263
2264 Problem reported by Nickolas George <darknova.clan@gmail.com>.
2265
2266 * builds/modules.mk: Don't use `win32' and `win16' (!) but
2267 `windows'.
2268
2269 * builds/windows/detect.mk, builds/windows/win32-def.mk:
2270 s/win32/windows/.
2271
22722014-02-08 Eugen Sawin <esawin@mozilla.com>
2273
2274 Fix Savannah bug #41507.
2275
2276 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
2277 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
2278
22792014-02-08 Dave Arnold <darnold@adobe.com>
2280
2281 [cff] Fix minor performance bug.
2282
2283 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
2284 calculations are now cached and not recomputed on each glyph.
2285
22862014-02-05 Werner Lemberg <wl@gnu.org>
2287
2288 Fix problems with perl 5.8.8 as distributed with current MinGW.
2289
2290 * src/tools/afblue.pl: Work-around for Perl bug #63402.
2291 (string_re): Avoid `possessive quantifiers', which have been
2292 introduced in Perl version 5.10.
2293
22942014-02-04 Werner Lemberg <wl@gnu.org>
2295
2296 Fix compilation with MinGW.
2297
2298 Right now, compilation out of the box with latest MinGW is broken
2299 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
2300 cf.
2301
2302 https://sourceforge.net/p/mingw/bugs/2024/
2303 https://sourceforge.net/p/mingw/bugs/2046/
2304
2305 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
2306
23072014-02-04 Werner Lemberg <wl@gnu.org>
2308
2309 [autofit] Minor fix.
2310
2311 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
2312 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
2313 of alternative standard characters.
2314 This also fixes a compilation warning in non-debug mode.
2315
23162014-02-03 Werner Lemberg <wl@gnu.org>
2317
2318 [cff] Fix Savannah bug #41363.
2319
2320 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
2321 parameter check.
2322 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
2323 we are scaling the outline.
2324 (cf2_getPpemY): Remove problematic assertion.
2325
23262014-01-26 Werner Lemberg <wl@gnu.org>
2327
2328 [autofit] Introduce two more slots for standard characters.
2329
2330 This is useful for OpenType features like `c2sc' (caps to small
2331 caps) that don't have lowercase letters by definition, or other
2332 features that mainly operate on numerals.
2333
2334 * src/autofit/afscript.h: Add more standard characters.
2335
2336 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
2337 (AF_ScriptClassRec): Add members to hold two more standard
2338 characters.
2339 (AF_DEFINE_SCRIPT_CLASS): Updated.
2340
2341 * src/autofit/afglobal.c, src/autofit/afglobal.h,
2342 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
2343 Update use of `SCRIPT' macro.
2344
2345 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
2346 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
2347 standard characters.
2348
23492014-01-24 Werner Lemberg <wl@gnu.org>
2350
2351 Fix Savannah bug #41320.
2352
2353 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
2354 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
2355
23562014-01-23 Werner Lemberg <wl@gnu.org>
2357
2358 Fix Savannah bug #41310.
2359
2360 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
2361 Don't check metrics, which this format doesn't have.
2362 This is another correction to the commit from 2013-11-21.
2363
23642014-01-23 Werner Lemberg <wl@gnu.org>
2365
2366 Fix Savannah bug #41309.
2367
2368 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
2369 of `T1_ToFixedArray'.
2370
2371 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
2372 `t1_parse_font_matrix'.
2373
2374 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
2375 `t1_parse_font_matrix'.
2376 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
2377
2378 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
2379 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
2380
23812014-01-22 Werner Lemberg <wl@gnu.org>
2382
2383 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
2384
23852014-01-16 Werner Lemberg <wl@gnu.org>
2386
2387 [autofit] Improve tracing of style coverages.
2388
2389 * include/internal/fttrace.h: Add `afglobal' for tracing style
2390 coverages.
2391
2392 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
2393 (FT_COMPONENT): Define.
2394 (af_face_globals_compute_style_coverage): Trace `gstyles' array
2395 data.
2396
23972014-01-09 Werner Lemberg <wl@gnu.org>
2398
2399 Fix Savannah bug #41158.
2400
2401 * builds/unix/install.mk (install): Create man page directory.
2402
24032014-01-08 Chongyu Zhu <lembacon@gmail.com>
2404
2405 [arm] Fix Savannah bug #41138, part 2.
2406
2407 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
2408 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
2409 preprocessor conditionals for `add.w'.
2410
24112014-01-08 Werner Lemberg <wl@gnu.org>
2412
2413 [autofit] Fix Savannah bug #41138, part 1.
2414
2415 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
2416 enumeration names for generated `#else'.
2417
2418 * src/autofit/afblue.h: Regenerated.
2419
24202014-01-06 Werner Lemberg <wl@gnu.org>
2421
2422 Add manual page for `freetype-config'.
2423 Contributed by Nis Martensen <nis.martensen@web.de>.
2424
2425 * docs/freetype-config.1: New file.
2426
2427 * builds/unix/unix-def.in (mandir): Define.
2428 * builds/unix/install.mk (install, uninstall): Handle manpage.
2429
24302014-01-05 Werner Lemberg <wl@gnu.org>
2431
2432 [autofit] Minor fixes for `afblue.pl'.
2433
2434 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
2435 <Handling #endif>: Use proper indentation for generated `#else'.
2436
2437 * src/autofit/afblue.h: Regenerated.
2438
24392014-01-04 Werner Lemberg <wl@gnu.org>
2440
2441 [autofit] Fix Indic scripts.
2442
2443 Split the single, incorrect Indic entry into separate scripts so
2444 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
2445 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
2446 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
Alexei Podtelezhnikovf46b2822016-04-11 23:22:57 -04002447 entries for Meetei Mayek and Sharada – the Unicode ranges were
Werner Lemberga724dcf2015-10-11 05:50:07 +02002448 incorrect (and nobody has complained about that), fonts are scarce
2449 for those scripts, and the Indic auto-hinter support is rudimentary
2450 anyways.
2451
2452 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
2453 AF_CONFIG_OPTION_CJK.
2454
2455 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
2456 Use it, together with AF_CONFIG_OPTION_INDIC and
2457 AF_CONFIG_OPTION_CJK, to update.
2458
2459 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
2460 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
2461 Sort entries by tags.
2462
24632014-01-03 Werner Lemberg <wl@gnu.org>
2464
2465 [autofit] Thinko.
2466
2467 * src/autofit/hbshim.c (af_get_char_index): Similar to
2468 `af_get_coverage', reject glyphs which are not substituted.
2469
24702014-01-03 Werner Lemberg <wl@gnu.org>
2471
2472 [autofit] Fix handling of default coverages.
2473
2474 With this commit, the implementation of coverage handling is
2475 completed.
2476
2477 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
2478 do.
2479 Reject coverages which don't contain appropriate glyphs for blue
2480 zones.
2481
24822014-01-03 Werner Lemberg <wl@gnu.org>
2483
2484 [autofit] Fix handling of default coverages.
2485
2486 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2487 First handle non-default coverages, then the default coverage of the
2488 default script, and finally the other default coverages.
2489
24902014-01-03 Werner Lemberg <wl@gnu.org>
2491
2492 [autofit] Fix scaling of HarfBuzz shaping.
2493
2494 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
2495
24962014-01-03 Werner Lemberg <wl@gnu.org>
2497
2498 [autofit] Better ftgrid support.
2499
2500 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
2501 parameters `is_blue' and `blue_offset'.
2502
25032014-01-01 Werner Lemberg <wl@gnu.org>
2504
2505 [autofit] Remove some styles.
2506
2507 * src/autofit/afcover.h: Remove coverages for alternative fractions,
2508 denominators, numerators, and fractions.
2509
2510 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
2511
25122014-01-01 Werner Lemberg <wl@gnu.org>
2513
2514 [autofit] Add more styles.
2515
2516 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
2517 auxiliary macros; use them to define styles for Cyrillic, Greek, and
2518 Latin.
2519
2520 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
2521 Since those digits are used in combination with ordinary letters, it
2522 makes no sense to handle them separately.
2523
2524 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
2525 `options' parameter to 4 bits.
2526
25272014-01-01 Werner Lemberg <wl@gnu.org>
2528
2529 [autofit] Fix style assignments to glyphs.
2530
2531 * src/autofit/hbshim.c (af_get_coverage)
2532 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
2533 so that we can skip glyphs that have both GSUB and GPOS data.
2534
25352014-01-01 Werner Lemberg <wl@gnu.org>
2536
2537 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
2538
25392014-01-01 Werner Lemberg <wl@gnu.org>
2540
2541 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
2542
2543 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
2544 Redefine to construct HarfBuzz features.
2545 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
2546
2547 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
2548 `y_offset' to adjust `best_y'.
2549
25502013-12-31 Werner Lemberg <wl@gnu.org>
2551
2552 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
2553
25542013-12-31 Werner Lemberg <wl@gnu.org>
2555
2556 [autofit] Fix interface of `af_get_char_index'.
2557
2558 * src/autofit/hbshim.c (af_get_char_index): Return error value.
2559 Add argument for y offset (to be used in a yet-to-come patch).
2560
2561 * src/autofit/hbshim.h, src/autofit/afcjk.c,
2562 src/autofit/aflatin.c: Updated.
2563
25642013-12-30 Werner Lemberg <wl@gnu.org>
2565
2566 [autofit] Don't combine multiple features into one set.
2567
2568 Combining them, as originally envisioned, would lead to much more
2569 complicated code, as investigations have shown meanwhile. The major
2570 drawback is that we run out of available style slots much earlier.
2571 However, this is only a theoretical issue since we don't support a
2572 large number of scripts currently.
2573
2574 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
2575 a single-element `COVERAGE' macro, sort the elements by the feature
2576 tags, and add entry for `ruby'.
2577
2578 * src/autofit/aftypes.h: Updated.
2579 * src/autofit/hbshim.c: Updated.
2580
25812013-12-28 Werner Lemberg <wl@gnu.org>
2582
2583 [autofit] Code shuffling to reduce use of cpp macros.
2584
2585 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2586 Call `af_get_coverage' unconditionally.
2587
2588 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
2589
2590 * src/autofit/hbshim.c (af_get_coverage)
2591 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
2592
2593 * src/autofit/hbshim.h: Provide function declarations
2594 unconditionally.
2595
25962013-12-28 Werner Lemberg <wl@gnu.org>
2597
2598 [autofit] Add wrapper function for `FT_Get_Char_Index'.
2599
2600 Yet-to-come changes will provide HarfBuzz functionality for the new
2601 function.
2602
2603 * src/autofit/hbshim.c (af_get_char_index): New function.
2604 * src/autofit/hbshim.h: Updated.
2605
2606 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
2607 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
2608
2609 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
2610 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
2611 Updated.
2612
26132013-12-28 Werner Lemberg <wl@gnu.org>
2614
2615 [autofit] Use `global' HarfBuzz font object.
2616
2617 We now use `hb_font' instead of `hb_face' since yet-to-come changes
2618 need this.
2619
2620 * src/autofit/afglobal.h: Include `hbshim.h'.
2621 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
2622 `hb_font'.
2623
2624 * src/autofit/afglobal.c (af_face_globals_new)
2625 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
2626 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
2627 `hb_font'.
2628
2629 * src/autofit/hbshim.h: Include HarfBuzz headers.
2630
2631 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
2632 headers.
2633 (af_get_coverage): Updated.
2634
26352013-12-27 Werner Lemberg <wl@gnu.org>
2636
2637 [autofit] Handle `DFLT' OpenType script for coverages.
2638
2639 * include/ftautoh.h: Document new `default-script' property.
2640
2641 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
2642 type of first parameter.
2643 (script_tags): Add one more element.
2644 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
2645
2646 * src/autofit/hbshim.h: Updated.
2647
2648 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2649 Updated.
2650
2651 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
2652
2653 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
2654 member.
2655
2656 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
2657 `default-script' property.
2658 (af_autofitter_init): Updated.
2659
26602013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2661
2662 [ftrfork] Fix the face order difference between POSIX and Carbon.
2663
2664 The fragmented resources in Suitcase and .dfont should be reordered
2665 when `POST' resource for Type1 is being restored, but reordering of
2666 sfnt resources induces the different face order. Now the ordering
2667 is restricted to `POST' resource only, to prevent the different
2668 order issue (e.g. the face index in the fontconfig cache generated
2669 with Carbon framework is incompatible with that by FreeType 2
2670 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
2671
Werner Lemberg87ddad22017-12-04 20:43:30 +01002672 https://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
2673 https://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
Werner Lemberga724dcf2015-10-11 05:50:07 +02002674
2675 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
2676 `sort_by_res_id' to control the fragmented resource ordering.
2677 * include/internal/ftrfork.h: Declare new switch.
2678 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
2679 resource, and disable the sorting for `sfnt' resource.
2680
26812013-12-25 Werner Lemberg <wl@gnu.org>
2682
2683 Fix Savannah bug #40997.
2684
2685 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
2686 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
2687 be set.
2688 * src/cff/cffobjs.c (cff_face_init): Ditto.
2689 * src/cid/cidobjs.c (cid_face_init): Ditto.
2690 * src/pcf/pcfread.c (pcf_load_font): Ditto.
2691 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
2692 * src/type1/t1objs.c (T1_Face_Init): Ditto.
2693 * src/type42/t42objs.c (T42_Face_Init): Ditto.
2694 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
2695
26962013-12-21 Werner Lemberg <wl@gnu.org>
2697
2698 [autofit] Introduce `coverages'.
2699
Alexei Podtelezhnikovc6d99a42016-04-08 00:05:50 -04002700 Coverages are the interface to the HarfBuzz library to access
Werner Lemberga724dcf2015-10-11 05:50:07 +02002701 OpenType features for handling glyphs not addressable by the cmap.
2702
2703 Right now, compilation of HarfBuzz is only added to the development
2704 build. A solution for standard build mode will be delayed until
2705 HarfBuzz gets split into two libraries to avoid mutual dependencies
2706 between FreeType and HarfBuzz.
2707
2708 Note that this is only a first step in handling coverages, basically
2709 providing the framework only. Code for handling selected OpenType
2710 features (this is, actually using the data in `afcover.h') will
2711 follow.
2712
2713 * devel/ftoption.h, include/config/ftoption.h
2714 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
2715
2716 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
2717 New files.
2718
2719 * src/autofit/afscript.h: Add HarfBuzz script name tags.
2720
2721 * src/autofit/afstyles.h: Add default coverage enumeration values.
2722
2723 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
2724 (AF_Coverage): New enumeration (generated by `afcover.h').
2725 (AF_StyleClassRec): New member `coverage'.
2726 (AF_DEFINE_STYLE_CLASS): Updated.
2727
2728 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
2729 data.
2730
2731 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
2732 (AF_SCRIPT_FALLBACK): Renamed to ...
2733 (AF_STYLE_FALLBACK): ... this.
2734
2735 * src/autofit/afglobal.c: Include `hbshim.c'.
2736 Update use of `SCRIPT' and `STYLE' macros.
2737 (af_face_globals_compute_style_coverage)
2738 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
2739 Update.
2740
2741 * src/autofit/afmodule.h (AF_ModuleRec):
2742 s/fallback_script/fallback_style/.
2743
2744 * src/autofit/afmodule.c (af_property_set): Adapt handling of
2745 `fallback-script' property to set a fallback style.
2746 (af_property_get, af_autofitter_init): Updated.
2747
2748 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
2749
2750 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
2751
2752 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
2753 `hbshim.c'.
2754
2755 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
2756 (AUTOF_DRV_H): Add `afcover.h'.
2757
2758 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
2759 all libraries needed by FreeType.
2760
27612013-12-21 Werner Lemberg <wl@gnu.org>
2762
2763 Fix Savannah bug #40975 (sort of).
2764
2765 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
2766 behave the same as the Windows TrueType engine for the invalid case.
2767
27682013-12-21 Werner Lemberg <wl@gnu.org>
2769
2770 [autofit] Make PIC mode work actually.
2771
2772 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
2773 enumeration values automatically generated by including `afscript.h'
2774 and friends.
2775
2776 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
2777
27782013-12-21 Werner Lemberg <wl@gnu.org>
2779
2780 Fix PIC linking.
2781
2782 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
2783 generated function name.
2784
2785 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
2786 to ...
2787 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
2788 function name correctly corresponds to what the macro framework
2789 expects.
2790
2791 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
2792 that PIC functions are compiled also.
2793
27942013-12-21 Werner Lemberg <wl@gnu.org>
2795
2796 [base] Add missing dependencies to Makefile.
2797
2798 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
2799 (BASE_H): Add `basepic.h'.
2800
28012013-12-20 Werner Lemberg <wl@gnu.org>
2802
2803 [autofit] Fix PIC compilation.
2804
2805 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
2806 src/autofit/aflatin.c (af_latin_metrics_init_widths)
2807 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
2808
2809 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
2810 AF_DEFINE_STYLE_CLASS.
2811
2812 * src/autofit/afpic.c: Include `afglobal.h'.
2813 (autofit_module_class_pic_init): Typo.
2814
2815 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
2816 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
2817 parameter and structure member.
2818
28192013-12-20 Werner Lemberg <wl@gnu.org>
2820
2821 [autofit] Introduce `styles'.
2822
2823 This is the new top-level structure for handling glyph input data;
2824 scripts are now defined separately.
2825
2826 * src/autofit/aftypes.h (SCRIPT): Updated.
2827 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
2828 members to ...
2829 (AF_Style_ClassRec): ... this new structure.
2830 (AF_Style): New enumeration.
2831 (AF_StyleMetricsRec): Replace `script' enumeration with
2832 `style_class' pointer.
2833 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
2834 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
2835
2836 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
2837 * src/autofit/afscript.h: Updated.
2838
2839 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
2840 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
2841
2842 * src/autofit/afglobal.c (SCRIPT): Updated.
2843 (STYLE): Redefine macro to load `afstyles.h'.
2844 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
2845 (af_style_names): ... this array.
2846 (af_face_globals_compute_script_coverage): Renamed to...
2847 (af_face_globals_compute_style_coverage): ... this.
2848 Updated.
2849 (af_face_globals_new, af_face_globals_free,
2850 af_face_globals_get_metrics): Updated.
2851
2852 * src/autofit/afglobal.h (SCRIPT): Updated.
2853 (STYLE): Redefine macro to load `afstyles.h'.
2854 (AF_SCRIPT_FALLBACK): Update definition. This will get more
2855 refinements with later on.
2856 (AF_SCRIPT_UNASSIGNED): Replace with...
2857 (AF_STYLE_UNASSIGNED): ... this macro.
2858 (AF_FaceGlobalsRec): Updated.
2859
2860 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
2861 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
2862 af_latin_hint_edges): Updated.
2863
2864 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
2865 (af_ltn2_uniranges): Removed.
2866
2867 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
2868 Updated.
2869
2870 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
2871 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
2872 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
2873 members.
2874
2875 * src/autofit/afranges.h: Updated.
2876
2877 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
2878
28792013-12-19 Werner Lemberg <wl@gnu.org>
2880
2881 [autofit] Factor scripts and uniranges out of writing system files.
2882
2883 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
2884
2885 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
2886 parameters, taking data from the writing system files.
2887
2888 * src/autofit/aftypes.h: Updated.
2889
2890 * src/autofit/afglobal.c: Include `afranges.h'.
2891 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
2892 * src/autofit/afglobal.c: Include `afranges.h'.
2893 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
2894
2895 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
2896 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
2897 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
2898 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
Alexei Podtelezhnikovc6d99a42016-04-08 00:05:50 -04002899 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: Updated.
Werner Lemberga724dcf2015-10-11 05:50:07 +02002900
2901 * src/autofit/afpic.c: Updated.
2902
Alexei Podtelezhnikovc6d99a42016-04-08 00:05:50 -04002903 * src/autofit/autofit.c: Include `afranges.c'.
Werner Lemberga724dcf2015-10-11 05:50:07 +02002904 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
2905
29062013-12-18 Werner Lemberg <wl@gnu.org>
2907
2908 [autofit] More code orthogonality.
2909
2910 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
2911 pointer to an `AF_ScriptClass' structure with `script' index of type
2912 `AF_Script'.
2913 Move some code around.
2914
2915 * src/autofit/afcjk.c: Include `afpic.h'.
2916 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
2917 af_cjk_hint_edges): Updated.
2918
2919 * src/autofit/aflatin.c: Include `afpic.h'.
2920 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
2921 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
2922
2923 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
2924
2925 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
2926 Updated.
2927
29282013-12-18 Werner Lemberg <wl@gnu.org>
2929
2930 [autofit] s/ScriptMetrics/StyleMetrics/.
2931
29322013-12-18 Werner Lemberg <wl@gnu.org>
2933
2934 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
2935
29362013-12-18 Werner Lemberg <wl@gnu.org>
2937
2938 [autofit] s/gscripts/gstyles/.
2939
29402013-12-18 Werner Lemberg <wl@gnu.org>
2941
2942 [autofit] s/glyph_scripts/glyph_styles/.
2943
2944 This is the first commit of a series to create a new top-level
2945 structure (a `style') for handling scripts, writing_systems, and
2946 soon-to-be-added coverages.
2947
29482013-12-17 Werner Lemberg <wl@gnu.org>
2949
2950 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
2951
29522013-12-11 Infinality <infinality@infinality.net>
2953
2954 [truetype] Simplify logic of rendering modes.
2955
2956 This patch unifies the subpixel and non-subpixel cases.
2957
2958 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
2959 `grayscale_hinting'; all code should refer to `grayscale' instead.
2960 Remove unused `native_hinting' member.
2961 Rename `subpixel_hinting' member to `subpixel.
2962
2963 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
2964 (tt_loader_init): Updated.
2965
2966 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
2967 Updated.
2968
29692013-12-11 Werner Lemberg <wl@gnu.org>
2970
2971 [documentation] Add section how to include FreeType header files.
2972 Problem reported by David Kastrup <dak@gnu.org>.
2973
2974 Surprisingly, a description how to do that was completely missing in
2975 the API reference.
2976
2977 * include/freetype.h, include/ftchapters.h: New documentation
2978 section `header_inclusion'.
2979
29802013-12-10 Werner Lemberg <wl@gnu.org>
2981
2982 [autofit] s/DFLT/NONE/, s/dflt/none/.
2983
29842013-12-10 Werner Lemberg <wl@gnu.org>
2985
2986 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
2987
29882013-12-10 Werner Lemberg <wl@gnu.org>
2989
2990 [truetype] Fix scaling of vertical phantom points.
2991
2992 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
2993 pp4.x also.
2994
29952013-12-10 Werner Lemberg <wl@gnu.org>
2996
2997 [truetype] Fix positioning of composite glyphs.
2998 Problem reported by Nigel Tao <nigeltao@golang.org>.
2999
3000 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
3001 the glyph (component) by a fractional value computed from the LSB
3002 phantom point. This is wrong, since the horizontal phantom points
3003 get rounded horizontally later on.
3004
30052013-12-08 Werner Lemberg <wl@gnu.org>
3006
3007 * Version 2.5.2 released.
3008 =========================
3009
3010
3011 Tag sources with `VER-2-5-2'.
3012
3013 * docs/VERSION.DLL: Update documentation and bump version number to
3014 2.5.2.
3015
3016 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3017 builds/windows/vc2005/index.html,
3018 builds/windows/vc2008/freetype.vcproj,
3019 builds/windows/vc2008/index.html,
3020 builds/windows/vc2010/freetype.vcxproj,
3021 builds/windows/vc2010/index.html,
3022 builds/windows/visualc/freetype.dsp,
3023 builds/windows/visualc/freetype.vcproj,
3024 builds/windows/visualc/index.html,
3025 builds/windows/visualce/freetype.dsp,
3026 builds/windows/visualce/freetype.vcproj,
3027 builds/windows/visualce/index.html,
3028 builds/wince/vc2005-ce/freetype.vcproj,
3029 builds/wince/vc2005-ce/index.html,
3030 builds/wince/vc2008-ce/freetype.vcproj,
3031 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
3032
3033 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
3034
3035 * builds/unix/configure.raw (version_info): Set to 17:1:11.
3036 * CMakeLists.txt (VERSION_PATCH): Set to 2.
3037 * docs/CHANGES: Updated.
3038
30392013-12-07 Werner Lemberg <wl@gnu.org>
3040
3041 [truetype] Next round in phantom point handling.
3042
3043 Greg Hitchcock provided very interesting insights into the
3044 complicated history of the horizontal positions of the TSB and BSB
3045 phantom points.
3046
3047 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
3048 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
3049 `grayscale_hinting' flags as conditionals for the x position of TSB
3050 and BSB.
3051
30522013-12-05 Werner Lemberg <wl@gnu.org>
3053
3054 * builds/freetype.mk (FT_CC): Removed. Unused.
3055
30562013-12-04 Werner Lemberg <wl@gnu.org>
3057
3058 [sfnt] Fix handling of embedded bitmap strikes.
3059
3060 This corrects the commit from 2013-11-21. Problem reported by
3061 Andrey Panov <panov@canopus.iacp.dvo.ru>.
3062
3063 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
3064 detect excessive bytes for bit-aligned bitmaps.
3065
30662013-12-03 Werner Lemberg <wl@gnu.org>
3067
3068 [truetype] Remove dead code.
3069
3070 Reported by Nigel Tao <nigeltao@golang.org>.
3071
3072 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
3073 `preserve_pps' field.
3074 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
3075
30762013-12-03 Werner Lemberg <wl@gnu.org>
3077
3078 [truetype] Fix phantom point handling.
3079
3080 This is a further improvement to the changes from 2013-11-06.
3081
3082 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
3083 are rounded horizontally, vertical ones are rounded vertically.
3084 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
3085 points in pre-ClearType mode is zero, as shown in the OpenType
3086 specification.
3087
30882013-12-02 Werner Lemberg <wl@gnu.org>
3089
3090 [truetype] Fix change from 2013-11-20.
3091
3092 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
3093
3094 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
3095 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
3096 `IS_HINTED' clause.
3097 Also remove redundant check using `maxSizeOfInstructions' – in
3098 simple glyphs, the bytecode data comes before the outline data, and
3099 a validity test for this is already present.
3100
31012013-11-27 Werner Lemberg <wl@gnu.org>
3102
3103 [autofit] Fix use of dumping functions in `ftgrid' demo program.
3104
3105 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
3106 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
3107 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
3108 handle output to stdout.
3109 Use AF_DUMP.
3110 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
3111 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
3112
31132013-11-25 Werner Lemberg <wl@gnu.org>
3114
3115 * Version 2.5.1 released.
3116 =========================
3117
3118
3119 Tag sources with `VER-2-5-1'.
3120
3121 * docs/VERSION.DLL: Update documentation and bump version number to
3122 2.5.1.
3123
3124 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3125 builds/windows/vc2005/index.html,
3126 builds/windows/vc2008/freetype.vcproj,
3127 builds/windows/vc2008/index.html,
3128 builds/windows/vc2010/freetype.vcxproj,
3129 builds/windows/vc2010/index.html,
3130 builds/windows/visualc/freetype.dsp,
3131 builds/windows/visualc/freetype.vcproj,
3132 builds/windows/visualc/index.html,
3133 builds/windows/visualce/freetype.dsp,
3134 builds/windows/visualce/freetype.vcproj,
3135 builds/windows/visualce/index.html,
3136 builds/wince/vc2005-ce/freetype.vcproj,
3137 builds/wince/vc2005-ce/index.html,
3138 builds/wince/vc2008-ce/freetype.vcproj,
3139 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
3140
3141 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
3142
3143 * builds/unix/configure.raw (version_info): Set to 17:0:11.
3144 * CMakeLists.txt (VERSION_PATCH): Set to 1.
3145 * docs/CHANGES, docs/release: Updated.
3146
31472013-11-23 Werner Lemberg <wl@gnu.org>
3148
3149 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
3150
3151 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
3152 TRICK_NAMES_COUNT): Updated.
3153 (trick_names): Add family name for the two fonts.
3154
31552013-11-23 Werner Lemberg <wl@gnu.org>
3156
3157 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
3158
31592013-11-21 Werner Lemberg <wl@gnu.org>
3160
3161 [sfnt] Typo.
3162
3163 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3164
3165 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
3166 value if the font lacks an `OS/2' table.
3167
31682013-11-21 Werner Lemberg <wl@gnu.org>
3169
3170 [sfnt] Improve handling of buggy embedded bitmap strikes.
3171
3172 We are now able to successfully load `AppleMyoungJo.ttf'.
3173 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3174
3175 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
3176 format.
3177
31782013-11-20 Werner Lemberg <wl@gnu.org>
3179
3180 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
3181
3182 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
3183
Werner Lemberg87ddad22017-12-04 20:43:30 +01003184 https://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
Werner Lemberga724dcf2015-10-11 05:50:07 +02003185
3186 for details.
3187
3188 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
3189 tables also for setting `autohint'.
3190
3191 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
3192 `TT_Process_Composite_Glyph' for handling unreliable values of
3193 `maxSizeOfInstructions'.
3194
31952013-11-16 Werner Lemberg <wl@gnu.org>
3196
3197 [sfnt] Fix `OS/2' table version 5 support.
3198
3199 We now follow the `official' announcement from Microsoft (on the
3200 OpenType mailing list, which unfortunately hasn't a public archive).
3201
3202 * include/freetype/tttables.h (TT_OS2):
3203 s/usLowerPointSize/usLowerOpticalPointSize/,
3204 s/usUpperPointSize/usUpperOpticalPointSize/.
3205
3206 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
3207 default values.
3208
32092013-11-13 Werner Lemberg <wl@gnu.org>
3210
3211 * builds/unix/ft2unix.h: Remove. No longer necessary.
3212
3213 * builds/unix/install.mk (install): Updated.
3214
32152013-11-13 Werner Lemberg <wl@gnu.org>
3216
3217 Simplify header file hierarchy.
3218
3219 This large patch changes the header file directory layout from
3220 `include/freetype/...' to `include/...', effectively removing one
3221 level. Since the file `ft2build.h' is also located in `include'
3222 (and it stays there even after installation), all FreeType header
3223 files are now in a single directory.
3224
3225 Applications that use (a) `freetype-config' or FreeType's
3226 `pkg-config' file to get the include directory for the compiler, and
3227 (b) the documented way for header inclusion like
3228
3229 #include <ft2build.h>
3230 #include FT_FREETYPE_H
3231 ...
3232
3233 don't need any change to the source code.
3234
3235 * include/freetype/*: Move up to...
3236 * include/*: ... this directory.
3237
3238 * builds/amiga/include/freetype/*: Move up to...
3239 * builds/amiga/include/*: ... this directory.
3240
3241 */*: Essentially do `s@/freetype/@/@' where appropriate.
3242
Alexei Podtelezhnikov6d070342016-06-20 01:09:18 -04003243 * CMakeLists.txt: Simplify.
Werner Lemberga724dcf2015-10-11 05:50:07 +02003244 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
3245 `--cflags', return a single directory.
3246 * builds/unix/install.mk (install): No longer try to remove `cache'
3247 and `internal' subdirectories; instead, remove the `freetype'
3248 subdirectory.
3249
32502013-11-12 Werner Lemberg <wl@gnu.org>
3251
3252 [truetype] Fix last `truetype' commit.
3253
3254 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
3255 Return error value.
3256 (load_truetype_glyph): Updated.
3257
32582013-11-10 Werner Lemberg <wl@gnu.org>
3259
3260 * docs/CMAKE: New dummy file.
3261
32622013-11-08 Dave Arnold <darnold@adobe.com>
3263
3264 [cff] Fix for hints that touch.
3265
3266 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
3267 finding index value of insertion point.
3268
32692013-11-06 Werner Lemberg <wl@gnu.org>
3270
3271 [truetype] Fix handling of phantom points in composite glyphs.
3272 Problem reported by Nigel Tao <nigeltao@golang.org>.
3273
3274 This is a follow-up commit to the previous one.
3275
3276 * src/truetype/ttgload.c (load_truetype_glyph): Call
3277 `tt_get_metrics' after loading the glyph header.
3278
32792013-11-06 Werner Lemberg <wl@gnu.org>
3280
3281 [truetype] Improve emulation of vertical metrics.
3282
3283 This commit also improves the start values of vertical phantom
3284 points. Kudos to Greg Hitchcock for help.
3285
3286 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
3287 `yMax' value. Replace code with fixed Microsoft definition.
3288 (tt_get_metrics): Updated.
3289 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
3290 points, taken from both the OpenType specification and private
3291 communication with Greg (which will eventually be added to the
3292 standard).
3293 Fix horizontal position of `pp3' and `pp4'.
3294
3295 * src/truetype/ttgload.h: Updated.
3296
3297 * src/truetype/ttdriver.c (tt_get_advances): Updated.
3298
3299 * docs/CHANGES: Updated.
3300
33012013-11-05 Werner Lemberg <wl@gnu.org>
3302
3303 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
3304 PlatformToolSet version 110 is for VC2012.
3305
3306 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
3307
33082013-11-05 Werner Lemberg <wl@gnu.org>
3309
3310 [truetype] Correctly reset point tags for glyph components.
3311 Problem reported by Nigel Tao <nigeltao@golang.org>.
3312
3313 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
3314
33152013-11-02 Werner Lemberg <wl@gnu.org>
3316
3317 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
3318
3319 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
3320 get info on subpixel hinting.
3321
3322 * docs/CHANGES: Updated.
3323
33242013-11-02 Werner Lemberg <wl@gnu.org>
3325
3326 Fix Savannah bug #40451.
3327
3328 Simply apply the patch from the bug report.
3329
3330 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
3331 include/freetype/config/ftconfig.h: The used #pragma directives only
3332 work with gcc versions 4.6 and higher.
3333
33342013-11-01 Werner Lemberg <wl@gnu.org>
3335
3336 * docs/CHANGES: Updated.
3337
33382013-11-01 Werner Lemberg <wl@gnu.org>
3339
3340 [truetype] Minor code refactoring.
3341
3342 Two benefits: The allocated FDEF (and IDEF) array gets slightly
3343 smaller, and the `ttdebug' demo program has access to function
3344 numbers without additional costs.
3345
3346 Fortunately, no changes to FontForge are necessary – this is the
3347 only external TrueType debugger I know of, but others may exist and
3348 should check the code accordingly.
3349
3350 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
3351 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
3352 structure.
3353
3354 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
3355 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
3356 Updated.
3357
33582013-10-27 Werner Lemberg <wl@gnu.org>
3359
3360 [sfnt] Implement support for `OS/2' table version 5.
3361
3362 See
3363
3364 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
3365
3366 for the announcement.
3367
3368 * include/freetype/tttables.h (TT_OS2): Add fields
3369 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
3370 this structure only as a pointer through `FT_Get_Sfnt_Table', there
3371 shouldn't be any ABI problems.
3372
3373 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
3374
3375 * docs/CHANGES: Updated.
3376
33772013-10-24 Werner Lemberg <wl@gnu.org>
3378
3379 * README.git, docs/CHANGES, docs/INSTALL: Updated.
3380
33812013-10-24 John Cary <cary@txcorp.com>
3382
3383 Provide cmake support.
3384
3385 * CMakeLists.txt: New file.
3386
33872013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
3388 Werner Lemberg <wl@gnu.org>
3389
3390 Provide support for x64 builds in Visual C++ project files.
3391
3392 * src/builds/win32: Renamed to...
3393 * src/builds/windows: This.
3394
3395 * src/builds/windows/vc2010/*: Updated to handle x64 target.
3396
3397 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
3398 appropriate.
3399
34002013-10-22 Werner Lemberg <wl@gnu.org>
3401
3402 * src/base/md5.c, src/base/md5.h: Updated to recent version.
3403
3404 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
3405
3406 The canonical URL to get updates for this file is
3407
Werner Lembergafa043d2018-12-25 22:44:05 +01003408 https://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
Werner Lemberga724dcf2015-10-11 05:50:07 +02003409
3410 as the author told me in private communication.
3411
34122013-10-19 Werner Lemberg <wl@gnu.org>
3413
3414 [autofit] s/SMALL_TOP/X_HEIGHT/.
3415
3416 * src/autofit/afblue.dat: Updated.
3417
3418 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3419
3420 * src/autofit/aflatin.c, src/autofit/aflatin.h,
Alexei Podtelezhnikovf46b2822016-04-11 23:22:57 -04003421 src/autofit/aflatin2.c: Updated.
Werner Lemberga724dcf2015-10-11 05:50:07 +02003422
34232013-10-19 Werner Lemberg <wl@gnu.org>
3424
3425 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
3426
3427 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3428
34292013-10-16 Werner Lemberg <wl@gnu.org>
3430
3431 [autofit] Add description strings to script entries.
3432
3433 Currently, this is unused.
3434
3435 * src/autofit/afscript.h: Do it.
3436 * src/autofit/afglobal.c, src/autofit/afpic.c,
3437 src/autofit/aftypes.h: Updated.
3438
34392013-10-16 Werner Lemberg <wl@gnu.org>
3440
3441 [autofit] Improve tracing message for extra light flag.
3442
3443 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
3444
34452013-10-15 Chongyu Zhu <lembacon@gmail.com>
3446
3447 [arm] Fix thumb2 inline assembly under LLVM.
3448
3449 When using `ADD' with an immediate operand, the instruction is
3450 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
3451 immediate operand cannot exceed 4095. It will fail to compile with
3452 LLVM.
3453
3454 However, in GCC, due to some legacy compatibility considerations,
3455 `ADD.W' will be automatically emitted when the immediate operand is
3456 larger than 4095.
3457
3458 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
3459 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
3460
3461 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
3462
34632013-10-12 Werner Lemberg <wl@gnu.org>
3464
3465 [autofit] Improve tracing of `latin' hinter.
3466
3467 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
3468 zone types.
3469 (af_latin_metrics_scale_dim): Report scaling changes due to x height
3470 alignment.
3471 Report scaled stroke width and blue zone values.
3472
34732013-10-03 Dave Arnold <darnold@adobe.com>
3474
3475 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
3476
3477 Note that the old code avoided using a region of the piecewise
3478 linear function where the slope was zero. The recovery was to use a
3479 different section of the function, which produced a different,
3480 incorrect amount of darkening.
3481
34822013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
3483
3484 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
3485
34862013-10-02 Dave Arnold <darnold@adobe.com>
3487
3488 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
3489
3490 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
3491 is to use a previous darkening amount when producing an unhinted,
3492 unscaled outline. This can cause autohint samples in ftgrid and
3493 ftview to be based on darkened CFF outlines instead of unhinted,
3494 undarkened ones.
3495
34962013-09-29 Dave Arnold <darnold@adobe.com>
3497
3498 Fix Savannah bug #39295.
3499
3500 The bug was caused by switching to the initial hintmap (the one in
3501 effect when `moveto' executes) just before drawing the final element
3502 in the charstring. This ensured that the path was closed (in both
3503 Character Space and Device Space). But if the final element was a
3504 curve and if the final hintmap was different enough from the initial
3505 one, then the curve was visibly distorted.
3506
3507 The first part of the fix is to draw the final curve using the final
3508 hintmap as specified by the charstring. This corrects the
3509 distortion but does not ensure closing in Device Space. It may
3510 require the rasterizer to automatically generate an extra closing
3511 line. Depending on the hintmap differences, this line could be from
3512 zero to a couple pixels in length.
3513
3514 The second part of the fix covers the case where the charstring
3515 subpath is closed with an explicit line. We now modify that line's
3516 end point to avoid the distortion.
3517
3518 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
3519 the change are:
3520
3521 25ppem S (98)
3522 24ppem eight (52)
3523 25.5ppem p (85)
3524
3525 Curves at the *end* of a subpath are no longer distorted. However,
3526 some of these glyphs have bad hint substitutions in the middle of a
3527 subpath, and these are not affected.
3528
3529 The patch has been tested with a set of 106 fonts that shipped with
3530 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
3531 Google Fonts. There are 1.5 million glyphs, of which some 20k are
3532 changed with the fix. A sampling of a few hundred of these changes
3533 have been examined more closely, and the changes look good (or at
3534 least acceptable).
3535
3536 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
3537 to indicate that we synthesize a closepath line.
3538
3539 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
3540 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
3541 `lineto' operator) and adjust hint zone.
3542 For synthesized closing lines, use end point in first hint zone.
3543 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
3544 particular, shift the detection of zero-length lines from character
3545 space to device space.
3546 (cf2_glyphpath_closeOpenPath): Remove assertion.
3547 Updated.
3548
35492013-09-25 Werner Lemberg <wl@gnu.org>
3550
3551 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
3552
35532013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3554
3555 [bdf, pcf] Refuse non-zero face_index.
3556
3557 Suggested by Akira Tagoh, see
3558
Werner Lemberg87ddad22017-12-04 20:43:30 +01003559 https://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
Werner Lemberga724dcf2015-10-11 05:50:07 +02003560
3561 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
3562 error if the font could be opened but non-zero `face_index' is
3563 given.
3564 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
3565
3566 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
3567 macro for `face_index' because it is validated later.
3568
35692013-09-23 Werner Lemberg <wl@gnu.org>
3570
3571 Fix Savannah bug #40090.
3572
3573 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
3574 306f8c5d (from 2013-08-25) affecting this function.
3575
35762013-09-22 Werner Lemberg <wl@gnu.org>
3577
3578 [autofit] Disunify Cyrillic and Greek handling from Latin.
3579
3580 * src/autofit/afscript.h: Add Cyrillic and Greek.
3581
3582 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
3583 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
3584 (AF_BLUE_STRINGSET_LATN): Fix typo.
3585 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3586
3587 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
3588 arrays.
3589 (af_grek_script_class, af_cyrl_script_class): New scripts.
3590 * src/autofit/aflatin.h: Updated.
3591
35922013-09-20 Werner Lemberg <wl@gnu.org>
3593
3594 * docs/CHANGES: Updated.
3595
35962013-09-20 Behdad Esfahbod <behdad@behdad.org>
3597
3598 Fix vertical size of emboldened glyphs.
3599
3600 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
3601
3602 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
3603 also.
3604
36052013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
3606
3607 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
3608 algorithm description.
3609
36102013-09-11 Werner Lemberg <wl@gnu.org>
3611
3612 [autofit] Improve Hebrew rendering.
3613
3614 This change introduces a new blue zone property
3615 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
3616 top segments.
3617
3618 * src/autofit/afblue.dat: Fix Hebrew blue strings.
3619 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
3620
3621 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
3622
3623 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
3624
3625 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
3626 `AF_LATIN_IS_LONG_BLUE'.
3627
3628 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
3629
36302013-08-28 Behdad Esfahbod <behdad@google.com>
3631
3632 [sfnt] Fix frame access while reading WOFF table directory.
3633
3634 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
3635 while reading the directory entries for the whole loop.
3636
36372013-08-29 Werner Lemberg <wl@gnu.org>
3638 Behdad Esfahbod <behdad@google.com>
3639
3640 Implement support for WOFF containers.
3641
3642 We simply synthesize a SFNT from the WOFF, create a memory stream
3643 for the new data, and load the SFNT as usual.
3644
3645 Does NOT add any API to access WOFF metadata or private blocks.
3646
3647 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
3648 WOFF_TableRec): New structures.
3649
3650 * include/freetype/tttags.h (TTAG_wOFF): New macro.
3651
3652 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
3653 `open_face'.
3654
3655 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
3656 `FT_GZIP_H'.
3657 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
3658 writing to a stream.
3659 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
3660 (sfnt_open_font): Handle `TTAG_wOFF'.
3661 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
3662
3663 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
3664 `sfnt->init_face'.
3665
3666 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
3667 argument so that a changed stream survives.
3668 Update callers.
3669
36702013-08-28 Werner Lemberg <wl@gnu.org>
3671
3672 [gzip] New function `FT_Gzip_Uncompress'.
3673
3674 This is modeled after zlib's `uncompress' function. We need this
3675 for WOFF support.
3676
3677 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
3678 New function.
3679
3680 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
3681
36822013-08-28 Werner Lemberg <wl@gnu.org>
3683
3684 [autofit] Fix `make multi' compilation.
3685
3686 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
3687 `afblue.h' but `aftypes.h'.
3688 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
3689
36902013-08-28 Werner Lemberg <wl@gnu.org>
3691
3692 [autofit] Fix C++ compilation.
3693
3694 * src/autofit/afglobal.c (af_face_globals_get_metrics),
3695 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
3696 (af_deva_script_class): Use proper casts.
3697
36982013-08-27 Behdad Esfahbod <behdad@google.com>
3699
3700 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
3701
37022013-08-27 Behdad Esfahbod <behdad@google.com>
3703
3704 FT_Open_Face: Improve external stream handling.
3705
3706 If the font's `clazz->init_face' function wants to swap to new
3707 stream, handling of whether original stream was external could
3708 result to either memory leak or double free. Mark externality into
3709 face flags before calling `init_face' such that the clazz can handle
3710 external streams properly.
3711
3712 * src/base/ftobjs.c (FT_Open_Face): Move code to set
3713 FT_FACE_FLAG_EXTERNAL_STREAM to...
3714 (open_face): This function.
3715
37162013-08-27 Werner Lemberg <wl@gnu.org>
3717
3718 Remove `FT_SqrtFixed' function.
3719
3720 It's no longer used.
3721
3722 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
3723
37242013-08-27 Werner Lemberg <wl@gnu.org>
3725
3726 [autofit] While tracing, report script names instead of ID values.
3727
3728 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
3729 New array.
3730 * src/autofit/afglobal.h: Updated.
3731
3732 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3733 af_cjk_hint_edges): Use `af_script_names'.
3734 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
3735 af_latin_hint_edges): Ditto.
3736
37372013-08-26 Werner Lemberg <wl@gnu.org>
3738
3739 [autofit] Report used script while hinting a glyph.
3740
3741 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
3742 (af_latin_hint_edges): Implement it.
3743
37442013-08-26 Werner Lemberg <wl@gnu.org>
3745
3746 [autofit] Add support for Hebrew script.
3747
3748 * src/autofit/afblue.dat: Add blue strings for Hebrew.
3749 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3750
3751 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
3752 (af_hebr_script_class): New script.
3753 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
3754
37552013-08-26 Werner Lemberg <wl@gnu.org>
3756
3757 [autofit] Improve tracing messages.
3758
3759 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
3760 ID in tracing message.
3761 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
3762 loop.
3763 Improve tracing messages.
3764 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
3765 `num_actions' to count hinting actions.
3766 Improve tracing messages.
3767
3768 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
3769 script ID in tracing message.
3770 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
3771 messages.
3772
37732013-08-26 Werner Lemberg <wl@gnu.org>
3774
3775 Better tracing of loaded glyphs.
3776
3777 Previously, the loading of a glyph was traced at level 4, if at all.
3778 With this change, all font loading routines emit a tracing message
3779 at level 1, making it easier to select tracing output (for example
3780 using F2_DEBUG="any:1 afhints:7 aflatin:7").
3781
3782 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
3783 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
3784 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
3785 messages.
3786 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
3787 message.
3788 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
3789 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
3790 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
3791 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
3792 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
3793 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
3794
37952013-08-26 Werner Lemberg <wl@gnu.org>
3796
3797 [autofit] Fix script selection.
3798
3799 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
3800 `AF_SCRIPT_DFLT', not value 0.
3801 Simplify code.
3802
3803 * src/autofit/afscript.h: Sort by script name.
3804
38052013-08-26 Werner Lemberg <wl@gnu.org>
3806
3807 [autofit] Make `dummy' hinter work as expected.
3808
3809 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
3810 information.
3811 (af_dummy_hints_apply): Scale the glyphs.
3812
38132013-08-25 Werner Lemberg <wl@gnu.org>
3814
3815 [autofit] Make `cjk' module use blue stringsets.
3816
3817 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
3818 (af_cjk_hani_blue_chars): Removed.
3819 (AF_CJK_BLUE_TYPE_*): Removed.
3820 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
3821 AF_BLUE_STRING_MAX_LEN.
3822 Change loops to use offsets (in file `afblue.h') into the new arrays
3823 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
3824 Instead of three dimensions (as used in the old blue string array)
3825 we now use properties to do the same, saving one loop nesting level.
3826
3827 * src/autofit/afcjk.h: Remove old enumeration values superseded by
3828 the new data in `afblue.h'.
3829 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
3830 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
3831 `af_cjk_metrics_init_blues'.
3832 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
3833 (AF_CJK_BLUE_IS_TOP): Renamed to...
3834 (AF_CJK_BLUE_TOP): This.
3835 (AF_CJK_MAX_BLUES): Remove.
3836 (AF_CJKAxisRec): Updated.
3837
38382013-08-25 Werner Lemberg <wl@gnu.org>
3839
3840 [autofit] Typo.
3841
3842 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
3843 cast.
3844
38452013-08-25 Werner Lemberg <wl@gnu.org>
3846
3847 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
3848
3849 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
3850 messages.
3851 (af_cjk_metrics_init_blues): Don't pass blue string array as
3852 argument but use the global array directly.
3853 Use `outline' directly.
3854 Update and add tracing messages.
3855 (af_cjk_metrics_init): Simplify code.
3856 (af_cjk_metrics_scale_dim): Improve tracing message.
3857 (af_cjk_metrics_scale): Synchronize.
3858
3859 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
3860 af_latin_metrics_init_blues): Improve and add tracing messages.
3861
38622013-08-25 Werner Lemberg <wl@gnu.org>
3863
3864 [autofit] Make `latin' module use blue stringsets.
3865
3866 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
3867 (af_latin_blue_chars): Removed.
3868 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
3869 with AF_BLUE_STRING_MAX_LEN.
3870 Change loops to use offsets (in file `afblue.h') into the new arrays
3871 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
3872 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
3873
3874 * src/autofit/aflatin.h: Remove old enumeration values superseded by
3875 the new data in `afblue.h'.
3876 (AF_LATIN_IS_TOP_BLUE): Updated definition.
3877 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
3878 (AF_LATIN_MAX_BLUES): Remove.
3879 (AF_LatinAxisRec): Updated.
3880
38812013-08-25 Werner Lemberg <wl@gnu.org>
3882
3883 [autofit] Add blue stringsets.
3884
3885 * src/autofit/aftypes.h: Include `afblue.h'.
3886 (AF_ScriptClassRec): Add `blue_stringset' field.
3887 (AF_DEFINE_SCRIPT_CLASS): Updated.
3888
3889 * src/autofit/autofit.c: Include `afblue.c'.
3890
3891 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
3892 (af_dflt_script_class), src/autofit/afindic.c
3893 (af_deva_script_class), src/autofit/aflatin.c
3894 (af_latn_script_class), src/autofit/aflatin2.c
3895 (af_ltn2_script_class): Updated.
3896
3897 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
3898
38992013-08-25 Werner Lemberg <wl@gnu.org>
3900
3901 [autofit] Introduce data file for blue strings.
3902
3903 The idea is to have a central file which gets processed by a Perl
3904 script to create proper `.c' and `.h' files using templates. There
3905 are two other reasons to do that:
3906
3907 . The data file should be easily readable. We use UTF-8 encoding
3908 which then gets converted to single bytes.
3909
3910 . Since the number of supported scripts will increase soon, the
3911 current usage of blue string arrays is a waste of space. Using
3912 the Perl script it is possible to imitate jagged arrays,
3913 defining enumeration constants as offsets into the arrays.
3914
3915 This commit only adds files without changing any functionality.
3916
3917 * src/autofit/afblue.dat: New data file.
3918 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
3919
3920 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
3921 for...
3922 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
3923 To avoid a dependency on Perl, we add them too.
3924
39252013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
3926
3927 [base] Enable new algorithm for `BBox_Cubic_Check'.
3928
3929 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
3930 the old one.
3931 Improve comments.
3932
39332013-08-18 Werner Lemberg <wl@gnu.org>
3934
3935 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
3936
39372013-08-18 Werner Lemberg <wl@gnu.org>
3938
3939 Fix Savannah bug #39804.
3940
3941 * builds/unix/configure.raw (LIBPNG): Define and export.
3942 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
3943 libpng.
3944
39452013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
3946
3947 [base] Clean up BBox_Conic_Check.
3948
3949 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
3950 extremum at the segment ends, which are already within the bbox.
3951 Slightly modify calculations.
3952
39532013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
3954
3955 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
3956
3957 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
3958 accuracy and avoid overflows.
3959
39602013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
3961
3962 [base] Refactor experimental (disabled) BBox_Cubic_Check.
3963
3964 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
3965 as the mirror image of the maximum search implemented here...
3966 (update_max): New function.
3967
39682013-08-06 John Tytgat <John.Tytgat@esko.com>
3969
3970 Fix Savannah bug #39702.
3971
3972 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
3973 != 0'; this stronger test is mandated by the CFF specification.
3974 Fix test for INDEX structures which have one or more empty entries
3975 at the end.
3976
39772013-08-05 Werner Lemberg <wl@gnu.org>
3978
3979 Fix gcc pragmas, part 2.
3980
3981 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
3982 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
3983 introduced with gcc version 4.6.
3984
39852013-08-05 Werner Lemberg <wl@gnu.org>
3986
3987 Fix gcc pragmas.
3988
3989 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
3990 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
3991 pragmas within a function body.
3992
39932013-08-05 Werner Lemberg <wl@gnu.org>
3994
3995 Fix Savannah bug #39700.
3996
3997 * builds/unix/ftconfig.h: Synchronize with
3998 `include/freetype/config/ftconfig.h'.
3999
4000 * builds/vms/ftconfig.h: Ditto.
4001 Make the differences to the master `ftconfig.h' file as small as
Alexei Podtelezhnikovbbb60962016-04-07 01:29:44 -04004002 possible for easier maintenance.
Werner Lemberga724dcf2015-10-11 05:50:07 +02004003
40042013-08-05 Werner Lemberg <wl@gnu.org>
4005
4006 [autofit] Improve handling of `near' points.
4007
4008 Points which are very near to each other are now marked as such.
4009 The `weak' flag is then computed by using the `in' vector of the
4010 first and the `out' vector of the last point of a group of near
4011 points.
4012
4013 For example, this fixes the rendering of glyph `Oslash' in
4014 `Roboto-Thin.ttf'.
4015
4016 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
4017
4018 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
4019 the heuristic value `near_limit' to decide whether the current point
4020 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
4021 Store good `in' vector (of last non-near point) in
4022 `last_good_in_{x,y}' and use it as an argument to
4023 `ft_corner_is_flat' if necessary.
4024
40252013-08-02 Werner Lemberg <wl@gnu.org>
4026
4027 * include/freetype/ftcffdrv.h: Improve documentation.
4028 This is based on blog entries from David Lemon and Dave Arnold (both
4029 from Adobe) with kind permission. Dave also helped in
4030 proof-reading.
4031
40322013-08-02 Werner Lemberg <wl@gnu.org>
4033
4034 [autofit] Move declaration of scripts into separate file.
4035
4036 This has the benefit that we don't need to duplicate the data at
4037 different places.
4038
4039 * src/autofit/afscript.h: New file.
4040
4041 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
4042 the enumeration values.
4043
4044 * src/autofit/afglobal.c: Include `afscript.h' to get the script
4045 specific header files.
4046 (af_script_classes): Include `afscript.h' to fill this array.
4047
4048 * src/autofit/afpic.c: Include `afscript.h' to get the script
4049 specific header files.
4050 (autofit_module_class_pic_init): Include `afscript.h' for
4051 initialization.
4052 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
4053 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
4054
4055 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
4056
40572013-08-02 Werner Lemberg <wl@gnu.org>
4058
4059 [autofit] Move declaration of writing systems into separate file.
4060
4061 This has the benefit that we don't need to duplicate the data at
4062 different places.
4063
4064 * src/autofit/afwrtsys.h: New file.
4065
4066 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
4067 define the enumeration values.
4068
4069 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
4070 system specific header files.
4071 Include `afpic.h'.
4072 (af_writing_system_classes): Include `afwrtsys.h' to fill this
4073 array.
4074
4075 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
4076 system specific header files.
4077 (autofit_module_class_pic_init): Include `afwrtsys.h' for
4078 initialization.
4079 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
4080 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
4081 `AF_WRITING_SYSTEM_MAX' instead.
4082
40832013-08-02 Werner Lemberg <wl@gnu.org>
4084
4085 [sfnt] Fix compilation with g++.
4086
4087 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
4088 cast.
4089 (Load_SBit_Png): Pacify compiler.
4090
40912013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4092 Werner Lemberg <wl@gnu.org>
4093
4094 [autofit] Fix `make multi'.
4095
4096 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
4097 FT_LOCAL_ARRAY_DEF): New macros.
4098
4099 * src/autofit/afglobal.c (af_writing_system_classes,
4100 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
4101 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
4102 `af_script_classes'.
4103 * src/autofit/afloader.c: Include `afpic.h'.
4104
41052013-08-01 Werner Lemberg <wl@gnu.org>
4106
4107 Another round of cppcheck nitpicks.
4108
4109 The call was (from the top-level of the FreeType tree):
4110
4111 cppcheck --force \
4112 --enable=all \
4113 -I /usr/include \
4114 -I /usr/local/include \
4115 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
4116 -I include \
4117 -I include/freetype \
4118 -I include/freetype/config \
4119 -I include/freetype/internal \
4120 -DFT2_BUILD_LIBRARY \
4121 . &> cppcheck.log
4122
4123 using cppcheck git commit f7e93f99.
4124
4125 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
4126 macro).
4127
4128 */* Improve variable scopes.
4129 */* Remove redundant initializations which get overwritten.
4130
4131 * src/gxvalid/*: Comment out redundant code or guard it with
4132 FT_DEBUG_LEVEL_TRACE.
4133
41342013-07-30 Werner Lemberg <wl@gnu.org>
4135
4136 [autofit] Introduce `writing systems'.
4137
4138 This patch adds a new top level to the auto-hinter's script class
4139 hierarchy. It defines `writing systems' which can contain multiple
4140 scripts.
4141
4142 For example, the `latin' writing system (in file `aflatin.c') is
4143 able to support scripts like Latin, Cyrillic, Armenian, etc., which
4144 can be handled similarly.
4145
4146 Scripts are now named using four-letter OpenType tags.
4147
4148 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
4149 to...
4150 (AF_WritingSystemClassRec): This new structure. It holds pointers
4151 to functions which can be shared among related scripts.
4152 (AF_WritingSystem): New enumeration.
4153 (AF_Script): Revised values using four-letter tags.
4154 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
4155 (AF_DEFINE_SCRIPT_CLASS): Updated.
4156
4157 * src/autofit/afglobal.c (af_writing_system_classes): New global,
4158 constant array.
4159 (af_script_classes): Updated.
4160 (af_face_globals_free): Updated.
4161 Remove assertion.
4162 (af_face_globals_get_metrics): Updated.
4163
4164 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
4165 [!AF_CONFIG_OPTION_CJK]: Handle this case.
4166
4167 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4168 Updated.
4169
4170 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
4171 initialize structures for both writing systems and scripts.
4172 * src/autofit/afpic.h: Updated.
4173 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
4174
4175 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
4176 system.
4177 (af_cjk_uniranges): Renamed to...
4178 (af_hani_uniranges): This.
4179 (af_cjk_script_class): Reduced and renamed to...
4180 (af_hani_script_class): This.
4181 * src/autofit/afcjk.h: Updated.
4182
4183 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
4184 system.
4185 (af_dummy_script_class): Reduced and renamed to...
4186 (af_dflt_script_class): This.
4187 * src/autofit/afdummy.h: Updated.
4188
4189 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
4190 system.
4191 (af_indic_uniranges): Renamed to...
4192 (af_deva_uniranges): This.
4193 (af_indic_script_class): Reduced and renamed to...
4194 (af_deva_script_class): This.
4195 * src/autofit/afcjk.h: Updated.
4196
4197 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
4198 system.
4199 (af_latin_uniranges): Renamed to...
4200 (af_latn_uniranges): This.
4201 (af_latin_script_class): Reduced and renamed to...
4202 (af_latn_script_class): This.
4203 * src/autofit/aflatin.h: Updated.
4204
4205 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
4206 writing system.
4207 (af_latin2_uniranges): Renamed to...
4208 (af_ltn2_uniranges): This.
4209 Synchronize ranges with `latin'.
4210 (af_latin2_script_class): Reduced and renamed to...
4211 (af_ltn2_script_class): This.
4212 * src/autofit/aflatin2.h: Updated.
4213
42142013-07-30 Werner Lemberg <wl@gnu.org>
4215
4216 [autofit] Variable renaming.
4217
4218 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
4219 s/clazz/script_class/.
4220 Update all users.
4221
42222013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4223
4224 Ignore libpng-config under cross-building configuration,
4225 because it will return the flags for the hosting environment.
4226
4227 * builds/unix/configure.raw: Ignore libpng-config when
4228 `cross_compiling' == yes.
4229
42302013-07-30 Behdad Esfahbod <behdad@google.com>
4231
4232 Prevent division by zero by a transparent color.
4233
4234 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
4235 Return 0 immediately, when alpha channel is zero.
4236
42372013-07-25 Behdad Esfahbod <behdad@google.com>
4238
4239 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
4240
4241 Also disambiguate Google's color bitmap tables.
4242
4243 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
4244 New macros.
4245
4246 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
4247 TT_SBIT_TABLE_TYPE_CBLC.
4248
4249 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
4250
4251 * src/sfnt/ttsbit.c (tt_face_load_sbit,
4252 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
4253 TT_SBIT_TABLE_TYPE_CBLC.
4254
42552013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4256
4257 [sfnt] Fix for `make multi' target.
4258
4259 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
4260
42612013-07-20 Werner Lemberg <wl@gnu.org>
4262
4263 * docs/INSTALL.GNU: Updated.
4264
42652013-07-20 Behdad Esfahbod <behdad@google.com>
4266
4267 [sfnt] Fix `sbix' table version handling.
4268
4269 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
4270 USHORT version numbers are to be considered as `minor'.
4271
42722013-07-19 Werner Lemberg <wl@gnu.org>
4273
4274 [autofit] Fix segment classification for blue zones.
4275
4276 The old code (essentially unchanged since the very beginning)
4277 incorrectly handled this configuration
4278
4279 x -o- x
4280 / \
4281 / \
4282 / \
4283 o o
4284
4285 as flat and this
4286
4287 o o
4288 / /
4289 x| x|
4290 | |
4291 o---------------o
4292
4293 as round. (`o' and `x' are on and off points, respectively).
4294
4295 This is a major change which should improve the rendering results
4296 enormously for many TrueType fonts, especially in the range approx.
4297 20-40ppem, fixing the appearance of many overshoots.
4298
4299 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
4300 first and last points of the segment, not the points right before
4301 and after.
4302
43032013-07-19 Behdad Esfahbod <behdad@google.com>
4304
4305 [sfnt] `sbix' fix-ups.
4306
4307 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
4308 are rendered scaled and then the `glyf' outline rendered on top. We
4309 don't support that yet, so just ignore the `glyf' outline and
4310 advertise it as a bitmap-only font.
4311
4312 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
4313 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
4314 (tt_face_load_sbix_image): Typo.
4315
43162013-07-18 Behdad Esfahbod <behdad@google.com>
4317
4318 [sfnt] Add support for Apple's `sbix' color bitmap table.
4319
4320 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
4321 fields to FT_Short and FT_UShort, respectively.
Alexei Podtelezhnikovc6d99a42016-04-08 00:05:50 -04004322 (TT_SbitTableType): New enumeration.
Werner Lemberga724dcf2015-10-11 05:50:07 +02004323 (TT_FaceRec): Add `sbit_table_type' field.
4324
4325 * include/freetype/tttags.h (TTAG_sbix): New macro.
4326
4327 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
4328 FT_GlyphSlot argument instead FT_Bitmap.
4329 Add flag to control map and metrics handling.
4330 Update all users.
4331
4332 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
4333 (tt_face_load_eblc): Renamed to...
4334 (tt_face_load_sbit): This.
Alexei Podtelezhnikovc6d99a42016-04-08 00:05:50 -04004335 Handle `sbix' bitmaps.
Werner Lemberga724dcf2015-10-11 05:50:07 +02004336 (tt_face_free_eblc): Renamed to...
4337 (tt_face_load_sbit): This.
4338 Updated.
4339 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
4340 (tt_face_load_sbix_image): New function.
4341 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
4342 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
4343 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
4344 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
4345 and handle load flags.
4346 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
4347 handle formats 17-19.
4348 Move color to grayscale conversion to...
4349 (tt_face_load_sbit_image): Here.
4350 Handle `sbix' bitmaps.
4351
4352 * src/sfnt/pngshim.h: Updated.
4353 * src/sfnt/ttsbit.h: Updated.
4354 * src/sfnt/sfdriver.c: Updated.
4355
43562013-07-18 Werner Lemberg <wl@gnu.org>
4357
4358 [sfnt] Ignore invalid magic number in `head' or `bhed'.
4359
4360 Other font engines seem to ignore it also. Problem reported by
4361 Hin-Tak Leung <htl10@users.sourceforge.net>.
4362
4363 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
4364 we have an invalid magic number.
4365
43662013-07-16 Werner Lemberg <wl@gnu.org>
4367
4368 [smooth] Fix segfault caused by previous commit.
4369
4370 * src/smooth/ftgrays.c (gray_set_cell): Always compute
4371 `ras.invalid'.
4372
43732013-07-16 David Turner <digit@google.com>
4374
4375 [smooth] Improve performance.
4376
4377 Provide a work-around for an ARM-specific performance bug in GCC.
4378 This speeds up the rasterizer by more than 5%.
4379
4380 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
4381 also improves performance on other platforms by a tiny bit (<1%).
4382
4383 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
4384 Use it where appropriate.
4385
4386 (gray_record_cell, gray_set_cell, gray_move_to,
4387 gray_convert_glyph_inner): Streamline condition handling.
4388
43892013-07-16 David Turner <digit@google.com>
4390
4391 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
4392
4393 This patch provides slightly optimized versions for ARM, x86, and
4394 x86_64 CPUs if built with GCC.
4395
4396 Also remove some dead code.
4397
4398 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
4399 TT_DotFix14_long_long): New functions.
4400
44012013-07-16 David Turner <digit@google.com>
4402
4403 Optimize FT_MulFix for x86_64 GCC builds.
4404
4405 This patch provides an optimized `FT_MulFix' implementation for
4406 x86_64 machines when FreeType is built with GCC, or compatible
4407 compilers like Clang.
4408
4409 Example:
4410 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
4411
4412 Before:
4413
4414 Load 4.863 us/op
4415 Load_Advances (Normal) 4.816 us/op
4416 Load_Advances (Fast) 0.028 us/op
4417 Render 2.753 us/op
4418 Get_Glyph 0.463 us/op
4419 Get_CBox 0.077 us/op
4420 Get_Char_Index 0.023 us/op
4421 Iterate CMap 13.898 us/op
4422 New_Face 12.368 us/op
4423 Embolden 0.028 us/op
4424 Get_BBox 0.302 us/op
4425
4426 After:
4427
4428 Load 4.617 us/op
4429 Load_Advances (Normal) 4.645 us/op
4430 Load_Advances (Fast) 0.027 us/op
4431 Render 2.789 us/op
4432 Get_Glyph 0.460 us/op
4433 Get_CBox 0.077 us/op
4434 Get_Char_Index 0.024 us/op
4435 Iterate CMap 13.403 us/op
4436 New_Face 12.278 us/op
4437 Embolden 0.028 us/op
4438 Get_BBox 0.301 us/op
4439
4440 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4441 (FT_MulFix_x86_64): New function.
4442
44432013-07-16 David Turner <digit@google.com>
4444
4445 Speed up ARMv7 support.
4446
4447 When building for ARMv7 with thumb2 instructions, the optimized
4448 `FT_MulFix_arm' assembly routine was not being used.
4449
4450 The reason for this is in the `ftconfig.h' header, namely:
4451
4452 - The assembly routine uses the `smull' instruction which is not
4453 available when generating Thumb-1 machine code. It is available
4454 in Thumb-2 mode, though.
4455
4456 - The header was written a long time ago before Thumb-2 became
4457 widely popular (e.g. with Android). So it simply doesn't use the
4458 assembly routine if the `__thumb__' built-in macro is defined.
4459
4460 - When compiling in Thumb-2 mode, the compiler will define both
4461 `__thumb__' and `__thumb2__'.
4462
4463 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
4464 assembly routine is only avoided when generating Thumb-1 code.
4465
4466 Given that this is performance-sensitive function, this improves
4467 `ftbench' as follows on a Galaxy Nexus:
4468
4469 Before (us/op) After (us/op)
4470
4471 - loading Arial.ttf glyphs at 14 ppem [1]
4472
4473 Load 34.285 33.098
4474
4475 - same operation with the light auto-hinter [2]
4476
4477 Load 31.317 29.590
4478
4479 - same operation without hinting [3]
4480
4481 Load 6.143 5.376
4482
4483 - loading Arial.ttf advances at 14 ppem [4]
4484
4485 Load_Advances (normal) 34.216 33.016
4486 Load_Advances (fast) 0.176 0.176
4487
4488 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
4489 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
4490 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
4491 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
4492
4493 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4494 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
4495
44962013-06-28 Werner Lemberg <wl@gnu.org>
4497
4498 * docs/CHANGES: Updated.
4499
45002013-06-27 Werner Lemberg <wl@gnu.org>
4501
4502 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
4503
45042013-06-25 Werner Lemberg <wl@gnu.org>
4505
4506 [cff] Add darkening limit to `darkening-parameters'.
4507
4508 * src/cff/cffdrivr.c (cff_property_set): Add check.
4509
45102013-06-25 Werner Lemberg <wl@gnu.org>
4511
4512 [cff] Add `darkening-parameters' property.
4513
4514 * include/freetype/ftcffdrv.h: Document it.
4515
4516 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
4517 `darkening-parameters' property.
4518
4519 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
4520
4521 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
4522 argument and use it.
4523 Update all callers.
4524
4525 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
4526 `darken_params' values.
4527
4528 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
4529
4530 * src/cff/cffobjs.c (cff_driver_init): Set default values for
4531 `darken_params'.
4532
45332013-06-25 Werner Lemberg <wl@gnu.org>
4534
4535 [docmaker] Code shuffling.
4536
4537 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
4538 * src/tools/docmaker/sources.py: ... to this file.
4539
45402013-06-25 Werner Lemberg <wl@gnu.org>
4541
4542 [docmaker] Remove unused functions.
4543
4544 * src/tools/docmaker/content.py (DocMarkup.get_start,
4545 DocBlock.get_markup_name): Removed.
4546 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
4547 HtmlFormatter.make_html_words): Removed.
4548
45492013-06-25 Werner Lemberg <wl@gnu.org>
4550
4551 * builds/freetype.mk (dll): Remove target.
4552
4553 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
4554
45552013-06-25 Werner Lemberg <wl@gnu.org>
4556
4557 [docmaker] Recognise URLs.
4558
4559 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
4560 (make_html_para): Use it.
4561
45622013-06-19 Werner Lemberg <wl@gnu.org>
4563
4564 * Version 2.5.0.1 released.
4565 ===========================
4566
4567
4568 Tag sources with `VER-2-5-0-1'.
4569
4570 * include/freetype/config/ftoption.h: Undefine
4571 CFF_CONFIG_OPTION_OLD_ENGINE.
4572 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
4573
45742013-06-19 Werner Lemberg <wl@gnu.org>
4575
4576 * builds/unix/install.mk (install): Don't create `cache' directory.
4577
4578 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
4579
45802013-06-19 Werner Lemberg <wl@gnu.org>
4581
4582 * Version 2.5.0 released.
4583 =========================
4584
4585
4586 Tag sources with `VER-2-5-0'.
4587
4588 * docs/VERSION.DLL: Update documentation and bump version number to
4589 2.5.0.
4590
4591 * README, Jamfile (RefDoc),
4592 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
4593 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
4594 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
4595 builds/win32/visualc/freetype.dsp,
4596 builds/win32/visualc/freetype.vcproj,
4597 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
4598 builds/win32/visualce/freetype.vcproj,
4599 builds/win32/visualce/index.html,
4600 builds/wince/vc2005-ce/freetype.vcproj,
4601 builds/wince/vc2005-ce/index.html,
4602 builds/wince/vc2008-ce/freetype.vcproj,
4603 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
4604
4605 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
4606 (FREETYPE_PATCH): Set to 0.
4607
4608 * builds/unix/configure.raw (version_info): Set to 16:2:10.
4609
4610 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
4611 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
4612
46132013-06-18 Werner Lemberg <wl@gnu.org>
4614
4615 Fix Savannah bug #39269.
4616
4617 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
Alexei Podtelezhnikovc6d99a42016-04-08 00:05:50 -04004618 case of reallocation failures.
Werner Lemberga724dcf2015-10-11 05:50:07 +02004619
46202013-06-18 Andrew Church <achurch+savannah@achurch.org>
4621
4622 Fix Savannah bug #39266.
4623
4624 If memory allocations fail at certain points while opening a font,
4625 FreeType can either crash due to a NULL dereference or leak memory.
4626
4627 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
4628 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
4629 FT_Open_Face() fails in a memory allocation before the face's
4630 reference count is set to 1, a subsequent `FT_Done_Library' call
4631 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
4632 the face.
4633
4634 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
4635 earlier.
4636 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
4637 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
4638
46392013-06-14 Werner Lemberg <wl@gnu.org>
4640
4641 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
4642
46432013-06-06 Dave Arnold <darnold@adobe.com>
4644 Werner Lemberg <wl@gnu.org>
4645
4646 [cff] Add code to Adobe's engine to handle ppem > 2000.
4647
4648 * src/cff/cffgload.c (cff_slot_load): If we get
4649 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
4650
46512013-06-12 Werner Lemberg <wl@gnu.org>
4652
4653 Another try on pragmas.
4654
4655 * include/freetype/internal/ftdebug.h: Move pragmas to...
4656 * include/freetype/internal/internal.h: ... this file since it gets
4657 included by all source files.
4658 * include/freetype/internal/ftserv.h: Remove pragma which has no
4659 effect.
4660
46612013-06-12 Werner Lemberg <wl@gnu.org>
4662
4663 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
4664
4665 This partially undoes commit 3f6e0e0c.
4666
46672013-06-12 Werner Lemberg <wl@gnu.org>
4668
4669 More compiler warning fixes.
4670
4671 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
4672
46732013-06-10 Werner Lemberg <wl@gnu.org>
4674
4675 [truetype] Improve handling of broken sbit advance widths.
4676
4677 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
4678 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
4679
4680 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
4681
46822013-06-10 Werner Lemberg <wl@gnu.org>
4683
4684 [sfnt] Improve embedded bitmap tracing.
4685
4686 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
4687 bitmap strike match to...
4688 (FT_Match_Size): This function.
4689
4690 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
4691 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
4692 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
4693 tt_sbit_decoder_load_image): Decorate with tracing messages.
4694
46952013-06-10 Werner Lemberg <wl@gnu.org>
4696
4697 Fix Savannah bug #39160.
4698
4699 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
4700 for the degenerate case.
4701
47022013-06-09 David Turner <digit@google.com>
4703
4704 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
4705
4706 This code, present since eight(!) years in the unused `CACHE'
4707 branch, has been forgotten to apply to the master branch. It's
4708 really amazing that noone has ever complained since
4709 `FTC_Manager_Reset' is pretty useless without flushing the cache.
4710
47112013-06-07 Werner Lemberg <wl@gnu.org>
4712
4713 Add and improve pragmas for MSVC compiler.
4714
4715 * include/freetype/internal/ftdebug.h: Remove pragmas.
4716 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
4717 * include/freetype/internal/ftvalid.h: Handle warning C4324.
4718 * src/base/ftobjs.c: Use push and pop for pragmas.
4719 * src/gzip/ftgzip.c: Handle warning C4244.
4720
47212013-06-07 Werner Lemberg <wl@gnu.org>
4722
4723 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
4724
4725 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
4726
47272013-06-06 Dave Arnold <darnold@adobe.com>
4728
4729 [cff] Add early exit feature for width-only calls.
4730
4731 This is for `FT_Get_Advance'.
4732
4733 There are 7 places where the spec says the width can be defined:
4734
4735 hstem/hstemhm
4736 vstem/vstemhm
4737 cntrmask/hintmask
4738 hmoveto
4739 vmoveto
4740 rmoveto
4741 endchar
4742
4743 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
4744 if possible.
4745
4746 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
4747 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
4748 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
4749
47502013-06-06 Werner Lemberg <wl@gnu.org>
4751
4752 Next round of compiler fixes.
4753
4754 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
4755 Add proper cast.
4756
4757 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
4758 cast.
4759 * include/freetype/internal/ftstream.h: Decorate stream and frame
4760 macros with `FT_Long' and `FT_ULong' as appropriate.
4761
4762 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
4763 raccess_guess_darwin_newvfs): Use cast.
4764
4765 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
4766
4767 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
4768 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
4769
Alexei Podtelezhnikov71d289d2017-04-19 23:50:29 -04004770 * src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use cast.
Werner Lemberga724dcf2015-10-11 05:50:07 +02004771 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
4772 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
4773
4774 * src/cid/cidparse.c (cid_parser_new): Use cast.
4775
4776 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
4777
4778 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
4779
4780 * src/raster/ftraster.c (ft_black_reset): Use cast.
4781
4782 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
4783 (ALL_POINTS): Fix cast.
4784
4785 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
4786 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
4787
47882013-06-05 Dave Arnold <darnold@adobe.com>
4789
4790 Fix more MSVC Win32 compiler warnings.
4791
4792 * src/base/ftobjs.c: Fix typo in MS pragma.
4793
4794 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
4795 `lineno' is only used in debug mode.
4796
4797 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
4798 debug mode.
4799
48002013-06-05 Werner Lemberg <wl@gnu.org>
4801
4802 Fix compiler warnings.
4803
4804 * include/freetype/internal/ftmemory.h: Decorate memory allocation
4805 macros with `FT_Long' where appropriate.
4806 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
4807
4808 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
4809 cast.
4810
4811 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
4812 including `md5.c'.
4813
4814 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
4815 cast.
4816
4817 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
4818 (tt_sbit_decoder_load_bitmap): Beautification.
4819
4820 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
4821 variables (earlier).
4822
4823 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
4824
4825 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
4826 where appropriate.
4827
4828 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
4829
48302013-06-04 Werner Lemberg <wl@gnu.org>
4831
4832 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
4833
4834 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
4835
48362013-06-04 Werner Lemberg <wl@gnu.org>
4837
4838 Apply fixes for cppcheck nitpicks.
4839
Werner Lembergafa043d2018-12-25 22:44:05 +01004840 https://cppcheck.sourceforge.net/
Werner Lemberga724dcf2015-10-11 05:50:07 +02004841
4842 The call was (from the top-level of the FreeType tree):
4843
4844 cppcheck --force \
4845 --enable=all \
4846 -I include \
4847 -I include/freetype/ \
4848 -I include/freetype/config/ \
4849 -I include/freetype/internal/ \
4850 . &> cppcheck.log
4851
4852 Note that the current version heavily chokes on FreeType, delivering
4853 many wrong results. I will report those issues to the cppcheck team
4854 so that a newer version gives improved results hopefully.
4855
4856 */* Improve variable scopes.
4857 */* Remove redundant initializations which get overwritten.
4858
4859 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
4860 Remove unused variable.
4861
4862 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
4863
4864 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
4865 Remove functionless code.
4866
4867 * src/tools/ftrandom.c (main): Fix memory leak.
4868
48692013-06-03 Werner Lemberg <wl@gnu.org>
4870
4871 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
4872
4873 This controls whether the old FreeType CFF engine gets compiled into
4874 FreeType. It is now disabled by default.
4875
4876 * devel/ftoption.h, include/freetype/config/ftoption.h
4877 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
4878
4879 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
4880 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
4881 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
4882 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
4883 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
4884
4885 * docs/CHANGES: Updated.
4886
48872013-06-02 Werner Lemberg <wl@gnu.org>
4888
4889 Fix PNG library handling.
4890
4891 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
4892 LIBPNG_LDFLAGS.
4893
48942013-05-23 Behdad Esfahbod <behdad@google.com>
4895
4896 Add support for color embedded bitmaps (eg. color emoji).
4897
4898 A new load flag, FT_LOAD_COLOR, makes FreeType load color
4899 embedded-bitmaps, following this draft specification
4900
4901 https://color-emoji.googlecode.com/git/specification/v1.html
4902
4903 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
4904 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
4905 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
4906 pre-multiplied sRGB images. If PNG support is available, PNG color
4907 images as defined in the same proposed specification are supported
4908 also.
4909
4910 Note that color bitmaps are converted to grayscale if client didn't
4911 ask for color.
4912
4913 * builds/unix/configure.raw: Search for libpng.
4914 Add `--without-png' option.
4915
4916 * devel/ftoption.h, include/freetype/config/ftoption.h
4917 (FT_CONFIG_OPTION_USE_PNG): New macro.
4918
4919 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
4920
4921 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
4922 `FT_PIXEL_MODE_BGRA'.
4923
4924 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
4925
4926 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
4927 (ft_gray_for_premultiplied_srgb_bgra): New function.
4928 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
4929
4930 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
4931
4932 * src/sfnt/sfnt.c: Include `pngshim.c'.
4933
4934 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
4935 (tt_face_load_eblc): Load `CBLC'.
4936 (tt_sbit_decoder_init): Load `CBDT'.
4937 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
4938 color and grayscale bitmaps.
4939 Set `num_grays'. This is used by `ftview' to choose the blending
4940 algorithm.
4941 (tt_sbit_decoder_load_byte_aligned,
4942 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
4943 tt_sbit_decoder_load_image): Pass load flag.
4944 s/write/pwrite/.
4945 Don't call `tt_sbit_decoder_alloc_bitmap'.
4946 Updated.
4947 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
4948 (tt_sbit_decoder_load_bitmap): Pass load flag.
4949 Handle new glyph formats 17, 18, and 19.
4950 Call `tt_sbit_decoder_alloc_bitmap'.
4951 Flatten color bitmaps if necessary.
4952 (tt_face_load_sbit_image): Updated.
4953
4954 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
4955
4956 * docs/CHANGES: Updated.
4957
49582013-05-24 Guenter <info@gknw.net>
4959
4960 Apply Savannah patch #8055.
4961
4962 Make `apinames' create an import file for NetWare.
4963
4964 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
4965 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
4966 (names_dump): Handle it.
4967 (usage): Updated.
4968 (main): Handle new command line flag `-wN'.
4969
49702013-05-23 Behdad Esfahbod <behdad@behdad.org>
4971
4972 Compilation fix.
4973
4974 * src/truetype/ttinterp.c (TT_RunIns)
4975 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
4976
49772013-05-22 Infinality <infinality@infinality.net>
4978
4979 [truetype] Formatting and an additional subpixel tweak.
4980
4981 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
4982 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
4983 Revert previous modification for Verdana clones.
4984
49852013-05-22 Infinality <infinality@infinality.net>
4986
4987 [truetype] Adjust subpixel zp2 moves and tweak rules.
4988
4989 These modifications fix thin diagonal stems in some legacy fonts.
4990
4991 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
4992 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
4993 (Ins_SHP): Disable x moves here for subpixel rendering.
4994 (Ins_SHPIX): Only disable x moves in compatibility mode.
4995 Split out zp2 move reversals and reorder conditional respectively.
4996
4997 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
4998 Only adjust Verdana clones for 17 ppem.
4999 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
5000 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
5001
50022013-05-20 Infinality <infinality@infinality.net>
5003
5004 [truetype] Simplify and improve subpixel function detection.
5005
5006 Some small enhancements have allowed the removal of many macros and
5007 the simplification of existing rules in `ttsubpix.c'.
5008
5009 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
5010 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
5011 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
5012 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
5013 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
5014
5015 * src/truetype/ttsubpix.c: Updated affected rules.
5016
5017 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
5018 (INS_FDEF): Add additional function detection.
5019 (INS_ENDF): Set runtime flag.
5020 (Ins_CALL): Skip the call under certain conditions.
5021 Remove bad code.
5022 (Ins_LOOPCALL): Skip the call under certain conditions.
5023 Remove bad code.
5024 (Move_Zp2_Point): Updated.
5025 (Ins_SHPIX): Updated.
5026 Skip the move under some situations.
5027 (Ins_MIAP): Improve conditions.
5028 (Ins_MIRP): Updated.
5029 (Ins_DELTAP): Skip move under certain conditions.
5030 Simplify conditions.
5031 (TT_RunIns): Updated.
5032 Add code to handle new function detection.
5033 Trace messages.
5034
50352013-05-17 Werner Lemberg <wl@gnu.org>
5036
5037 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
5038
5039 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
5040 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
5041
50422013-05-15 Werner Lemberg <wl@gnu.org>
5043
5044 [truetype] Add `interpreter-version' property.
5045
5046 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
5047 at runtime.
5048
5049 * include/freetype/ftttdrv.h: New file.
5050
5051 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
5052 macro.
5053
5054 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
5055 (tt_property_set, tt_property_get): Fill templates.
5056
5057 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
5058 member.
5059 Remove unused `extension_component' member.
5060
5061 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
5062 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
5063 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
5064
5065 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
5066 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
5067 Update all affected functions to use it.
5068 Use TT_INTERPRETER_VERSION_XXX where appropriate.
5069
5070 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
5071 (tt_driver_init): Initialize `interpreter_version'.
5072
5073 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
5074 Use TT_INTERPRETER_VERSION_XXX where appropriate.
5075
50762013-05-13 Werner Lemberg <wl@gnu.org>
5077
5078 [truetype] Avoid empty source file.
5079
5080 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
5081 Provide dummy typedef.
5082
50832013-05-13 Werner Lemberg <wl@gnu.org>
5084
5085 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
5086
5087 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
5088
50892013-05-13 Brian Nixon <bnixon@yahoo.com>
5090
5091 Fix Savannah bug #38970.
5092
5093 * src/base/ftdebug.c, builds/win32/ftdebug.c,
5094 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
5095 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
5096
50972013-05-12 Werner Lemberg <wl@gnu.org>
5098
5099 [truetype] Add framework for TrueType properties.
5100
Alexei Podtelezhnikovbbb60962016-04-07 01:29:44 -04005101 * src/truetype/ttdriver.c: Include FT_SERVICE_PROPERTIES_H.
Werner Lemberga724dcf2015-10-11 05:50:07 +02005102 (tt_property_set, tt_property_get): New functions, still empty.
5103 Define `tt_service_properties' service.
5104 Update `tt_services'.
5105
5106 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
5107 (TT_SERVICE_PROPERTIES_GET): New macro.
5108 (TTModulePIC): Add `tt_service_properties'.
5109
51102013-05-12 Werner Lemberg <wl@gnu.org>
5111
5112 Fix Savannah bug #38967.
5113
5114 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
5115
51162013-05-12 Werner Lemberg <wl@gnu.org>
5117
5118 Introduce unsigned 64bit type (if available).
5119
5120 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
5121 [FT_LONG64]: Provide FT_UInt64.
5122
5123 * builds/unix/ftconfig.in: Synchronized.
5124
51252013-05-12 Werner Lemberg <wl@gnu.org>
5126
5127 Fix Savannah bug #38968.
5128
5129 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
5130 FT_Property_{Set,Get}.
5131 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
5132 FT_Property_{Set,Get}.
5133
51342013-05-10 Werner Lemberg <wl@gnu.org>
5135
5136 [sfnt] Clean up bitmap code.
5137
5138 * src/sfnt/ttsbit.c: Deleted.
5139 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
5140 * rules.mk (SFNT_DRV_H): Updated.
5141
51422013-05-10 Werner Lemberg <wl@gnu.org>
5143
5144 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
5145
5146----------------------------------------------------------------------------
5147
Werner Lemberg75859972019-02-23 10:07:09 +01005148Copyright (C) 2013-2019 by
Werner Lemberga724dcf2015-10-11 05:50:07 +02005149David Turner, Robert Wilhelm, and Werner Lemberg.
5150
5151This file is part of the FreeType project, and may only be used, modified,
5152and distributed under the terms of the FreeType project license,
5153LICENSE.TXT. By continuing to use, modify, or distribute this file you
5154indicate that you have read the license and understand and accept it
5155fully.
5156
5157
5158Local Variables:
5159version-control: never
5160coding: utf-8
5161End: