blob: 6184575ba4f0046c27d7025210aa8523c27e3a31 [file] [log] [blame]
Werner Lemberg986ea4b2007-07-04 04:53:15 +000012007-07-04 Werner Lemberg <wl@gnu.org>
2
3 * docs/PROBLEMS: Mention that some PS based fonts can't be
4 handled correctly by FreeType.
5
Werner Lemberg3b0e5002007-07-03 04:48:19 +000062007-07-03 Werner Lemberg <wl@gnu.org>
7
8 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
9 `round' to pacify compiler.
10
112007-07-02 Werner Lemberg <wl@gnu.org>
12
13
14 * Version 2.3.5 released.
15 =========================
16
17
18 Tag sources with `VER-2-3-5'.
19
20 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
21 version number to 2.3.5.
22
23 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
24 builds/win32/visualc/freetype.dsp,
25 builds/win32/visualc/freetype.vcproj,
26 builds/win32/visualce/index.html,
27 builds/win32/visualce/freetype.dsp,
28 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
29
30 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
31
32 * builds/unix/configure.raw (version_info): Set to 9:16:3.
33
David Turner0ba89912007-07-01 09:34:04 +0000342007-07-01 David Turner <david@freetype.org>
35
Werner Lemberge3be90b2007-07-02 14:58:58 +000036 * include/freetype/freetype.h, src/base/ftpatent.c
37 (FT_Face_SetUnpatentedHinting): New function to dynamically change
38 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +000039
Werner Lemberge3be90b2007-07-02 14:58:58 +000040 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
41 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +000042
David Turner74cc0e92007-06-30 22:54:12 +0000432007-06-30 David Turner <david@freetype.org>
44
Werner Lemberge3be90b2007-07-02 14:58:58 +000045 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
46 initialization.
David Turner74cc0e92007-06-30 22:54:12 +000047
Werner Lemberge3be90b2007-07-02 14:58:58 +000048 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
49 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +000050
Werner Lemberg7723dc32007-06-26 04:44:35 +0000512007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
52
53 Add autofit module for Indic scripts. This currently just reuses
54 the CJK-specific functions.
55
56 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
57 macro.
58 * devel/ftoption.h: Synchronize with
59 include/freetype/config/ftoption.h.
60
61 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
62
63 * src/autofit/afglobal.c, src/autofit/aftypes.h,
64 src/autofit/autofit.c: Updated.
65
66 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
67 (AUTOF_DRV_SRC): Updated.
68
David Turner8f626b02007-06-22 22:22:38 +0000692007-06-23 David Turner <david@freetype.org>
70
Werner Lemberg7854c4a2007-06-23 07:16:20 +000071 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
72 2007-06-16 that prevented the TrueType module from loading most
73 glyphs.
David Turner8f626b02007-06-22 22:22:38 +000074
Werner Lemberg5b4d4352007-06-20 07:07:55 +0000752007-06-20 Werner Lemberg <wl@gnu.org>
76
77 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
78 change.
79
Werner Lemberg9fe58152007-06-19 07:57:30 +0000802007-06-19 Werner Lemberg <wl@gnu.org>
81
82 * src/type1/t1load.c (parse_encoding): Handle one more error.
83
Werner Lemberg5a829392007-06-19 04:53:30 +0000842007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
85
86 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
87 FNT_Err_Invalid_File_Format if file format was recognized but
88 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
89 Add verbose debug logs to make it easier to debug failing load
90 attempts.
91 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
92 so return an error if requested face index is > 0.
93 Do not do further attempt to load fonts if a previous attempt has
94 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
95 file format has been recognized but no fonts found in the file.
96
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000972007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
98
99 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
100 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
101 the compiler warnings against unused arguments.
102 (FT_ATSFontGetFileReference): Ditto.
103 (FT_GetFile_From_Mac_ATS_Name): Ditto.
104 (FT_New_Face_From_FSSpec): Ditto.
105 (lookup_lwfn_by_fond): Fix wrong comment.
106 Replace `const StringPtr' by more appropriate type
107 `ConstStr255Param'.
108 FSRefMakePathPath always returns UTF8 POSIX pathname in
109 Mach-O, thus HFS pathname support is dropped.
110 (count_faces): Remove HLock and HUnlock which is not
111 required on Mac OS X anymore.
112 (FT_New_Face_From_SFNT): Ditto.
113 (FT_New_Face_From_FOND): Ditto.
114 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
115 except of HFS pathname support and HLock/HUnlock.
116 They are required on classic CFM environment.
117
1182007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +0000119
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000120 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
121 assertion.
122 (ps_parser_to_bytes): Fix error message.
123
Werner Lembergbb2510d2007-06-18 17:07:49 +0000124 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000125 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
126 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +0000127 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +0000128 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000129
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001302007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000131
Werner Lembergf48aec72007-06-18 07:07:55 +0000132 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
133 logic.
134 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
135 correctly.
136 (ps_parser_load_field_table): Use `fields->array_max' instead of
137 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
138
Werner Lemberg95104a42007-06-18 07:33:10 +0000139 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
140 2007-06-06.
141
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001422007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000143
144 * src/tools/ftrandom.c (font_size): New global variable.
145 (TestFace): Use it.
146 (main): Handle new option `--size' to set `font_size'.
147 (Usage): Updated.
148
Werner Lembergbe183eb2007-06-17 11:27:17 +0000149 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
150 invalid font.
151 (FNT_Load_Glyph): Protect against invalid bitmap width.
152
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001532007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000154
Werner Lemberge12ed562007-06-17 05:31:23 +0000155 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
156 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000157
Werner Lemberge12ed562007-06-17 05:31:23 +0000158 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
159 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000160
Werner Lemberge12ed562007-06-17 05:31:23 +0000161 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
162 and `zp2'.
163 (Ins_IP): Check argument ranges to reject bogus operations properly.
164 (IUP_WorkerRec): Add `max_points' member.
165 (_iup_worker_interpolate): Check argument ranges.
166 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000167
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001682007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000169
170 * src/winfonts/winfnt.h: Add necessary structures for PE resource
171 parsing.
172 (WinPE32_HeaderRec): New structure.
173 (WinPE32_SectionRec): New structure.
174 (WinPE_RsrcDirRec): New structure.
175 (WinPE_RsrcDirEntryRec): New structure.
176 (WinPE_RsrcDataEntryRec): New structure.
177 (FNT_FontRec): Remove unused `size_shift' field.
178
179 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
180 loading bitmap .fon files in PE format.
181
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001822007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000183
184 * builds/win32/ftdebug.c: Unify debug level handling with other
185 platforms.
186
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001872007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000188
189 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
190 console as well as to the debugger.
191
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001922007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000193
194 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
195 cover all ranges which could possibly be handled by the aflatin
196 module (since the default fallback for unknown ranges is now the
197 afcjk module). It might be necessary to fine-tune this further by
198 splitting off modules for Greek, Cyrillic, or other blocks.
199
David Turnerb7920172007-06-11 05:37:35 +00002002007-06-11 David Turner <david@freetype.org>
201
Werner Lemberg49e18b82007-06-11 21:15:09 +0000202 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
203 incorrect segment linking computation. This was the root cause of
204 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000205
206
Werner Lemberg49e18b82007-06-11 21:15:09 +0000207 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
208 to improve the Latin auto-hinter. Note that the new code is
209 disabled by default since it is not stabilized yet.
210
211 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
212 (disabled currently).
213
214 * src/autofit/afhints.c: Remove dead code.
215 (af_axis_hints_new_edge): Add argument to handle segment directions.
216 (af_edge_flags_to_string): New function.
217 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
218 option flags.
219 (af_glyph_hints_reload): Add argument to handle inflections.
220 Simplify.
221 (af_direction_compute): Fine tuning.
222 (af_glyph_hints_align_edge_points): Fix logic.
223 (af_glyph_hints_align_strong_points): Do linear search for small
224 edge counts.
225 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
226 (af_iup_shift): Handle zero `delta'.
227
228 * src/autofit/afhints.h: Updated.
229 (AF_SORT_SEGMENTS): New macro (disabled).
230 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
231
232 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
233 argument to pass option flags for handling scripts.
234 * src/autofit/afglobal.h: Updated.
235
236 * src/autofit/afcjk.c: Updated.
237 * src/autofit/aflatin.c: Updated.
238 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
239
240 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
241 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
242 Don't set `edge->dir'
243 (af_latin_hint_edges): Add more logging.
244
245 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000246
Werner Lembergf6c120f2007-06-11 04:55:58 +00002472007-06-11 Werner Lemberg <wl@gnu.org>
248
Werner Lembergcf7b7642007-06-11 04:58:01 +0000249 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000250
David Turner84c6f882007-06-10 20:51:04 +00002512007-06-10 David Turner <david@freetype.org>
252
Werner Lembergf6c120f2007-06-11 04:55:58 +0000253 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
254 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000255
Werner Lembergf6c120f2007-06-11 04:55:58 +0000256 * include/freetype/config/ftoption.h: Clarify documentation
257 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000258
Werner Lembergf6c120f2007-06-11 04:55:58 +0000259
260 Add new `FT_Face_CheckTrueTypePatents' API.
261
262 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
263 declaration.
264
265 * include/freetype/internal/services/svttglyf.h,
266 src/base/ftpatent.c: New files.
267
268 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
269 New macro.
270
271 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
272 `ttpload.h'.
273 (tt_service_truetype_glyf): New service structure.
274 (tt_services): Register it.
275
276 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
277 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000278
Werner Lemberg33db39e2007-06-08 06:30:29 +00002792007-06-08 Werner Lemberg <wl@gnu.org>
280
David Turner84c6f882007-06-10 20:51:04 +0000281 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000282 Fonts without a cmap must be handled correctly by FreeType (anything
283 else would be a bug).
284
285
286 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
287 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
288
Werner Lemberg88ab6382007-06-07 05:01:56 +00002892007-06-07 Werner Lemberg <wl@gnu.org>
290
291 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
292 tt_sbit_decoder_load_image): Protect against integer overflows.
293
294
295 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
296 for `x_control' and `y_control'.
297
Werner Lemberg2a2dca62007-06-06 04:39:37 +00002982007-06-06 Werner Lemberg <wl@gnu.org>
299
300 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
301
Werner Lemberga8d65492007-06-06 04:47:49 +0000302
303 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
304 FreeType error.
305
Werner Lemberg470210b2007-06-06 10:05:49 +0000306
307 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
308 `font_count'.
309
310
311 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
312
313
314 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
315 `FT_Error'.
316 Check `fd_index'.
317 (cff_slot_load): Updated.
318 * src/cff/cffgload.h: Updated.
319
Werner Lemberg6c054752007-06-05 05:27:54 +00003202007-06-05 Werner Lemberg <wl@gnu.org>
321
322 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
323 (pfr_glyph_load_simple): Convert assertion into normal FreeType
324 error.
325 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000326 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
327 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000328
329 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
330
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000331
Werner Lemberg470210b2007-06-06 10:05:49 +0000332 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000333
Werner Lemberge5c14d92007-06-05 20:50:37 +0000334
335 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
336 in case of parsing error.
337 (ps_parser_load_field): Updated.
338
339 * src/type1/t1load.c (parse_font_matrix): Updated.
340
Werner Lembergad18b362007-06-04 07:04:05 +00003412007-06-04 Werner Lemberg <wl@gnu.org>
342
343 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
344
345 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
346
Werner Lemberg3d507fe2007-06-03 16:54:55 +00003472007-06-03 Werner Lemberg <wl@gnu.org>
348
Werner Lemberg99a320b2007-06-03 19:21:26 +0000349 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
350 George Williams (with some modifications).
351
3522007-06-03 Werner Lemberg <wl@gnu.org>
353
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000354 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
355 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
356 face == NULL. Suggested by Graham Asher.
357
Werner Lembergce280a22007-06-03 05:58:30 +00003582007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
359
360 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
361
Werner Lemberg5b591e42007-06-01 22:16:43 +00003622007-06-02 Werner Lemberg <wl@gnu.org>
363
364 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
365 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
366
367 * src/bdf/bdflib.c (bdf_load_font): Use them.
368
369 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
370
Werner Lembergb9933f42007-06-01 21:27:12 +00003712007-06-01 Werner Lemberg <wl@gnu.org>
372
373 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
374 (FTC_CMapCache_Lookup): Remove unused code.
375
Werner Lembergc793d902007-06-01 20:51:11 +00003762007-06-01 Sean McBride <sean@rogue-research.com>
377
378 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
379 unused.
380
Werner Lembergbebc7b12007-06-01 06:32:30 +00003812007-06-01 Werner Lemberg <wl@gnu.org>
382
383 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
384 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000385 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000386
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000387 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
388 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
389
Werner Lembergba03af62007-05-30 13:57:02 +00003902007-05-30 Werner Lemberg <wl@gnu.org>
391
392 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
393 against too small binary data strings.
394
395 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
396
David Turnerf0cd69c2007-05-28 15:42:09 +00003972007-05-28 David Turner <david@freetype.org>
398
Werner Lemberg99e0c182007-05-29 07:00:23 +0000399 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
400 transformation. This significantly reduces the loading time of CFF
401 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000402
Werner Lemberg99e0c182007-05-29 07:00:23 +0000403 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000404
Werner Lemberg99e0c182007-05-29 07:00:23 +0000405 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
406 hinting script to CJK, since it works well with more scripts than
407 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
408 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000409
Werner Lemberg1c8980e2007-05-25 07:11:12 +00004102007-05-25 Werner Lemberg <wl@gnu.org>
411
412 * docs/CHANGES: Updated.
413
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00004142007-05-24 Werner Lemberg <wl@gnu.org>
415
416 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
417 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
418
4192007-05-24 Graham Asher <graham.asher@btinternet.com>
420
421 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
422 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
423
David Turner0d0365e2007-05-22 09:53:44 +00004242007-05-22 David Turner <david@freetype.org>
425
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000426 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
427 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000428
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000429
430 Avoid heap blowup with very large .Z font files. This fixes
431 Savannah bug #19910.
432
433 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
434 `in_limit', `pad', `pad_bits', and `in_buff' members.
435 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
436 `buf_total' members.
437
438 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
439 only one argument.
440 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000441
4422007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000443
444 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
445 (ps_dimension_set_mask_bits): Remove `const'.
446
David Turner0d0365e2007-05-22 09:53:44 +00004472007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000448
449 * src/sfnt/ttmtx.c (tt_face_get_metrics)
450 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
451
Werner Lembergb826fa72007-05-19 07:18:48 +00004522007-05-19 Derek Clegg <dclegg@apple.com>
453
454 Savannah patch #5929.
455
456 * include/freetype/tttables.h, src/base/ftobjcs.c
457 (FT_Get_CMap_Format): New function.
458
459 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
460 `format' member.
461 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
462 cmap_info->format.
463
Werner Lemberg6f99c882007-05-19 07:01:49 +00004642007-05-19 Werner Lemberg <wl@gnu.org>
465
466 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
467 before handling subglyphs so that it can be reinitialized each time.
468 This fixes Savannah bug #19859.
469
Werner Lemberg95bc9d32007-05-16 15:19:42 +00004702007-05-16 Werner Lemberg <wl@gnu.org>
471
472 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
473 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
474 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
475 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
476 tt_face_get_metrics): Fix type-punning issues.
477
David Turner0a24bd22007-05-15 10:54:10 +00004782007-05-15 David Turner <david@freetype.org>
479
480 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000481 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
482 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000483 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000484 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000485
Werner Lemberg607dec72007-05-15 06:49:37 +00004862007-05-15 Graham Asher <graham.asher@btinternet.com>
487
488 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
489 variable.
490 * src/autofit/afloader.c (af_loader_load_g): Ditto.
491
492 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
493 (open_face_from_buffer): Initialize `stream'.
494 (FT_Request_Metrics): Remove unused variable.
495 Remove redundant `break' statements.
496 (FT_Get_Track_Kerning): Remove unused variable.
497
498 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
499 afm_parse_kern_data): Remove redundant
500 `break' statements.
501 (afm_parser_parse): Ditto.
502 Don't use uninitialized variables.
503
504 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
505 Use `|' operator instead of `^' to set it.
506 Update all users.
507
508 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
509 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
510
511 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
512 comparison.
513 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
514 (TT_Load_Glyph): Remove unused variable.
515
Werner Lemberg8d463a52007-05-13 16:01:55 +00005162007-05-13 Derek Clegg <dclegg@apple.com>
517
518 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
519 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
520
David Turner711cf842007-05-11 14:36:24 +00005212007-05-11 David Turner <david@freetype.org>
522
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000523 * src/cache/ftbasic.c, include/freetype/ftcache.h
524 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
525 functions that allow us to look up glyphs using an FTC_Scaler object
526 to specify the size, making it possible to use fractional pixel
527 sizes.
528
529 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
530 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000531
Werner Lemberg94be20e2007-05-09 20:02:55 +00005322007-05-09 Graham Asher <graham.asher@btinternet.com>
533
534 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
535 (af_latin_metrics_scale_dim): Fix compiler warnings.
536
Werner Lemberg41271032007-05-06 04:51:48 +00005372007-05-06 Werner Lemberg <wl@gnu.org>
538
539 * builds/win32/visualce/freetype.sln: Removed, as requested by
540 Vincent.
541
Werner Lembergdf49e692007-05-04 06:30:05 +00005422007-05-04 Vincent RICHOMME <richom.v@free.fr>
543
544 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
545 PC targets.
546
547 * docs/CHANGES: Document them.
548
5492007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000550
551 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
552 mmap (which might happen on some RTOS). From Savannah patch #5909.
553
Werner Lemberg106eaf12007-05-03 07:07:47 +00005542007-05-03 Werner Lemberg <wl@gnu.org>
555
556 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
557 * include/freetype/freetype.h (FT_Set_Char_Size): Update
558 documentation.
559
Werner Lemberg1b5267d2007-04-28 21:06:15 +00005602007-04-28 Victor Stinner <victor.stinner@inl.fr>
561
562 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
563 `cmap'.
564
Werner Lembergcc712a22007-04-27 17:16:50 +00005652007-04-27 Werner Lemberg <wl@gnu.org>
566
567 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
568 number of points in contours. Problem reported by Victor Stinner
569 <victor.stinner@haypocalc.com>.
570 (TT_Process_Simple_Glyph): Synchronize variable types.
571
Werner Lemberg45bb18f2007-04-26 06:26:35 +00005722007-04-26 Werner Lemberg <wl@gnu.org>
573
574 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
575 zero in case of error. This fixes Savannah bug #19689.
576
David Turnera8b45e62007-05-11 14:10:30 +00005772007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
578
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000579 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
580 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000581
Werner Lembergfcc1f472007-04-10 11:51:50 +00005822007-04-10 Martin Horak <horakm@centrum.cz>
583
584 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
585 Ignore `hhea' table. This fixes Savannah bug #19261.
586
Werner Lemberg14bf82e2007-04-10 04:09:49 +00005872007-04-09 Werner Lemberg <wl@gnu.org>
588
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000589
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000590 * Version 2.3.4 released.
591 =========================
592
593
594 Tag sources with `VER-2-3-4'.
595
596 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
597 version number to 2.3.4.
598
599 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
600 builds/win32/visualc/freetype.dsp,
601 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
602
603 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
604
605 * builds/unix/configure.raw (version_info): Set to 9:15:3.
606
Werner Lembergf4a52a62007-04-09 08:40:11 +00006072007-04-09 Martin Horak <horakm@centrum.cz>
608
609 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
610 memory stream to avoid a crash with the incremental memory
611 interface (Savannah bug #19260).
612
David Turner1dcb4442007-04-06 08:19:04 +00006132007-04-06 David Turner <david@freetype.org>
614
Werner Lembergc81cf612007-04-06 09:28:23 +0000615 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
616 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000617
Werner Lemberg9f83e052007-04-05 02:28:23 +00006182007-04-04 Werner Lemberg <wl@gnu.org>
619
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000620
Werner Lemberg9f83e052007-04-05 02:28:23 +0000621 * Version 2.3.3 released.
622 =========================
623
624
625 Tag sources with `VER-2-3-3'.
626
627 * docs/CHANGES: Mention CVE-2007-1351.
628
David Turner7338ec22007-04-03 14:30:34 +00006292007-04-03 David Turner <david@freetype.org>
630
631 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000632 if one of the resolution values is 0, treat it as if it were the
633 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000634
David Turnere6472c12007-04-02 13:13:54 +00006352007-04-02 David Turner <david@freetype.org>
636
Werner Lemberg94f12272007-04-03 07:19:53 +0000637 Add special code to detect `extra-light' fonts and do not snap their
638 stem widths too much to avoid bizarre hinting effects.
639
640 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
641 `extra_light' members.
642
643 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
644 them.
645 (af_latin_metrics_scale_dim): Set `extra_light'.
646 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000647
David Turner3f539692007-03-28 14:53:40 +00006482007-03-28 David Turner <david@freetype.org>
649
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000650 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000651 padding.
652
Werner Lemberga08b2172007-03-28 07:17:17 +00006532007-03-28 Werner Lemberg <wl@gnu.org>
654
655 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
656 gracefully.
657 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000658 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000659 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
660 number of code points in Unicode.
661
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000662 * builds/win32/visualc/index.html,
663 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000664 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000665 s/232/233/.
666
667 * docs/CHANGES: Mention ftdiff.
668
David Turner3b242d32007-03-26 12:03:04 +00006692007-03-26 David Turner <david@freetype.org>
670
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000671 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
672 corresponding code.
673 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000674
Werner Lemberga08b2172007-03-28 07:17:17 +0000675 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000676 computations in order to ignore single-point contours. These are
677 never rasterized and correspond in certain fonts to mark-attach
678 points that are very far from the glyph's real outline, ruining the
679 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000680
Werner Lemberga08b2172007-03-28 07:17:17 +0000681 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000682 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000683 Otherwise code that uses them will most certainly ruin the fixed
684 advance property.
David Turner23553d62007-03-26 13:37:17 +0000685
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000686 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
687 documentation and bump version number to 2.3.3.
688
689 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
690
691 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000692
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00006932007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
694
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000695 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
696 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000697 * builds/vms/ftconfig.h: Ditto.
698 * include/freetype/config/ftconfig.h: Ditto.
699
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00007002007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
701
Werner Lemberg14ffe092007-03-22 06:12:43 +0000702 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
703 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000704 proposed by Sean McBride:
705 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
706
7072007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
708
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000709 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
710 setjmp, proposed by Sean McBride:
711 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
712
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00007132007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
714
Werner Lembergc9f6c662007-03-21 13:30:14 +0000715 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
716 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
717 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000718
David Turner74c34eb2007-03-18 07:19:31 +00007192007-03-18 David Turner <david@freetype.org>
720
Werner Lembergc9f6c662007-03-21 13:30:14 +0000721 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
722 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000723
Werner Lembergc9f6c662007-03-21 13:30:14 +0000724 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000725
David Turner89020d92007-03-17 17:48:57 +00007262007-03-17 David Turner <david@freetype.org>
727
Werner Lembergc9f6c662007-03-21 13:30:14 +0000728 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
729 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000730
Werner Lemberg25d592a2007-03-09 07:59:35 +00007312007-03-09 Werner Lemberg <wl@gnu.org>
732
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000733
Werner Lemberg25d592a2007-03-09 07:59:35 +0000734 * Version 2.3.2 released.
735 =========================
736
737
738 Tag sources with `VER-2-3-2'.
739
740 * builds/win32/visualc/index.html,
741 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000742 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000743 s/231/232/.
744
David Turner3a51afa2007-03-08 10:50:38 +00007452007-03-08 David Turner <david@freetype.org>
746
Werner Lemberg25d592a2007-03-09 07:59:35 +0000747 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000748
Werner Lemberg25d592a2007-03-09 07:59:35 +0000749 * builds/unix/configure.raw (version_info): Set to 9:13:3.
750
751 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
752
753 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000754
Werner Lemberg1e259de2007-03-08 15:39:21 +0000755 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
756 function to work properly, over-writing user-provided buffers in
757 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000758
David Turner121cad52007-03-08 16:43:50 +0000759
Werner Lemberg3d92f082007-03-06 11:59:24 +00007602007-03-05 Werner Lemberg <wl@gnu.org>
761
762 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
763 macro for `strstr'.
764
765 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
766 `trick_names', as suggested by Ivan Nincic.
767
David Turner085bc6e2007-03-05 17:40:03 +00007682007-03-05 David Turner <david@freetype.org>
769
Werner Lembergd112cf02007-03-06 12:06:56 +0000770 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
771 case FT_Init_FreeType fails for some reason. Problem reported by
772 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000773
Werner Lembergd112cf02007-03-06 12:06:56 +0000774 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
775 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
776 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
777 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000778
Werner Lembergd112cf02007-03-06 12:06:56 +0000779 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
780 signed values, not unsigned ones. Problem reported by Johannes
781 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000782
David Turner601aefe2007-02-21 16:47:49 +00007832007-02-21 David Turner <david@freetype.org>
784
Werner Lembergde5e6862007-02-25 21:06:43 +0000785 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
786 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000787
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00007882007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
789
790 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
791 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
792 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
793
Werner Lemberga0915172007-02-16 08:12:50 +00007942007-02-16 Werner Lemberg <wl@gnu.org>
795
796 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
797 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
798
David Turner2c4500e2007-02-14 15:08:47 +00007992007-02-14 David Turner <david@freetype.org>
800
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000801 It seems that the following changes fix most of the known
802 interpreter problems with my fonts, but more testing is needed,
803 though.
804
805 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
806 (TT_MulFix14): Rewrite.
807 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
808 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000809
Werner Lembergc6a14082007-02-12 22:08:15 +00008102007-02-12 Werner Lemberg <wl@gnu.org>
811
812 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
813 warnings.
814
815 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
816 (bdf_interpret_style): Ditto.
817
David Turnerc0f9c4a2007-02-12 14:55:03 +00008182007-02-12 David Turner <david@freetype.org>
819
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000820 Simplify projection and dual-projection code interface.
821
Werner Lemberg406d25f2007-02-12 22:01:18 +0000822 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
823 FT_Vector' as argument type.
824 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
825 Updated.
826 (CUR_fast_project, CUR_fast_dualproj): New macros.
827 (Project, Dual_Project, Project_x, Project_y): Updated.
828 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
829 macros.
830
831
832 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
833 adjustments for the non-light auto-hinted modes. Gets rid of
834 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000835
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000836 * src/autofit/aflatin.c (af_latin_hints_link_segments,
837 af_latin_hints_compute_edges): Slight optimization of the segment
838 linker and better handling of serif segments to get rid of broken
839 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000840
David Turnerc0f9c4a2007-02-12 14:55:03 +0000841
Werner Lemberg442bfb82007-02-12 21:44:10 +0000842 Introduce new string functions and the corresponding macros to get
843 rid of various uses of strcpy and other `evil' functions, as well as
844 to simplify a few things.
845
846 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
847 ft_mem_strcpyn): New declarations.
848 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
849 macros.
850 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
851 functions.
852
853 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
854 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
855 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
856 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
857 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
858 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
859 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
860 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000861
Werner Lemberg406d25f2007-02-12 22:01:18 +0000862 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
863
Werner Lemberg582067d2007-02-11 15:03:05 +00008642007-02-11 Werner Lemberg <wl@gnu.org>
865
866 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
867 non-spacing glyphs.
868
Werner Lemberg8f474532007-02-07 08:31:01 +00008692007-02-07 Tom Parker <palfrey@tevp.net>
870
871 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
872 pointer.
873
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
875
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000876 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
877 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000878 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000879 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
880 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
881 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
882 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000883
884 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
885 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000886 * builds/mac/ftmac.c: Ditto.
887
8882007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
889
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000890 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000891 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000892 #include <ftmac.c>.
893
8942007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
895
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000896 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
897 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
898 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
899 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
900 FT_GetFilePath_From_Mac_ATS_Name.
901 * builds/mac/ftmac.c: Ditto.
902
9032007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
904
Werner Lembergdcbb7082007-02-08 08:54:09 +0000905 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000906 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
907 for passing to FT_New_Face_From_FSSpec.
908
9092007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
910
Werner Lembergdcbb7082007-02-08 08:54:09 +0000911 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000912 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000913
914 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
915 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000916 * builds/mac/ftmac.c (OS_INLINE): Ditto.
917
Werner Lemberg313d7772007-02-01 08:10:45 +00009182007-02-01 Werner Lemberg <wl@gnu.org>
919
920 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
921 Explain why applications shouldn't use it. Found by Alexei.
922
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009232007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000924
925 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
926 message.
927
928 * src/gxvalid/gxvmort1.c
929 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
930 message.
931
Werner Lemberg53935932007-01-31 08:53:02 +00009322007-01-31 Werner Lemberg <wl@gnu.org>
933
934
935 * Version 2.3.1 released.
936 =========================
937
938
939 Tag sources with `VER-2-3-1-FINAL'.
940
941 * builds/win32/visualc/freetype.dsp,
942 builds/win32/visualc/freetype.vcproj: s/230/231/.
943 * builds/win32/visualc/index.html: s/221/231/.
944
945 * vms_make.com: Add `ftgasp'.
946
David Turnera7ee6082007-01-30 10:33:53 +00009472007-01-30 David Turner <david@freetype.org>
948
Werner Lemberg53935932007-01-31 08:53:02 +0000949 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000950
Werner Lemberg53935932007-01-31 08:53:02 +0000951 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000952
Werner Lemberg25d592a2007-03-09 07:59:35 +0000953 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000954 s/2.3.0/2.3.1/.
955
956 * builds/unix/configure.raw (version_info): Set to 9:12:3.
957
958
959 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
960 (af_loader_load_g): Disable the warper (i.e., the light hinting
961 improvements) to make a 2.3.1 bugfix release before introducing a
962 new feature. This should give us more time to tune and improve the
963 warper for the next release.
964
965 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000966
David Turnerd91eebd2007-01-26 15:05:41 +00009672007-01-25 David Turner <david@freetype.org>
968
Werner Lembergbf241762007-01-26 16:08:49 +0000969 For light auto-hinting, improve glyph advance widths and resurrect
970 normal/full hinting to its normal quality.
971
972 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
973 and `xmax_delta'.
974 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
975 and `xmax_delta'.
976
977 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
978 preprocessor conditional with if-clause, handling both light and
979 normal mode.
980
981 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
982 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000983
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00009842007-01-25 Werner Lemberg <wl@gnu.org>
985
986 * docs/release: Updated -- Savannah uses a new uploading scheme.
987
David Turnera42567b2007-01-25 12:23:37 +00009882007-01-25 David Turner <david@freetype.org>
989
Werner Lembergd7855662007-01-25 13:53:56 +0000990 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000991
Werner Lembergd7855662007-01-25 13:53:56 +0000992 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
993 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
994 functions.
David Turnera42567b2007-01-25 12:23:37 +0000995
Werner Lembergd7855662007-01-25 13:53:56 +0000996 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000997
Werner Lembergb1be9e82007-01-25 11:50:00 +00009982007-01-25 Werner Lemberg <wl@gnu.org>
999
1000 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00001001 correctly in a sanity check. Since this function is only used to
1002 load local and global functions, any charstring that called the last
1003 local/global function would fail otherwise. This fixes Savannah bug
1004 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00001005
1006 * docs/CHANGES: Document it.
1007
David Turnerb6de8d12007-01-23 15:51:50 +000010082007-01-23 David Turner <david@freetype.org>
1009
Werner Lembergb1be9e82007-01-25 11:50:00 +00001010 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1011 prevented compilation when disabling both the unpatented and the
1012 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00001013
Werner Lembergb1be9e82007-01-25 11:50:00 +00001014
1015 Fix and enable the warper to improve `light' hinting mode. This is
1016 not necessarily a final version, but it seems to work well.
1017
1018 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1019 Disable code.
1020 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1021 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1022
1023 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1024 (af_warper_compute_line_best): Fix array size of `scores'.
1025 (af_warper_compute): Better handling of border cases.
1026 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1027 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00001028
Werner Lemberg011d1112007-01-21 09:36:00 +000010292007-01-21 Werner Lemberg <wl@gnu.org>
1030
Werner Lemberg42b63b22007-01-21 21:01:33 +00001031 * ChangeLog: Split off older entries into...
1032 * ChangeLog.22: This new file.
1033
10342007-01-21 Werner Lemberg <wl@gnu.org>
1035
Werner Lemberg555258f2007-01-21 09:46:37 +00001036 * docs/CHANGES: Document SHZ fix.
1037
10382007-01-21 George Williams <gww@silcom.com>
1039
1040 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1041 points.
1042
10432007-01-21 Werner Lemberg <wl@gnu.org>
1044
Werner Lemberg011d1112007-01-21 09:36:00 +00001045 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1046 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1047
Werner Lemberg87a5a432007-01-17 12:44:39 +000010482007-01-17 Werner Lemberg <wl@gnu.org>
1049
Werner Lembergb8003292007-01-17 12:56:25 +00001050
1051 * Version 2.3.0 released.
1052 =========================
1053
1054
1055 Tag sources with `VER-2-3-0-FINAL'.
1056
10572007-01-17 Werner Lemberg <wl@gnu.org>
1058
Werner Lemberg87a5a432007-01-17 12:44:39 +00001059 * docs/release: Updated.
1060
David Turner22122722007-01-16 20:06:44 +000010612007-01-16 David Turner <david@freetype.org>
1062
Werner Lemberg87a5a432007-01-17 12:44:39 +00001063 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1064 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1065 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1066 warnings.
David Turner22122722007-01-16 20:06:44 +00001067
Werner Lemberg267e1d72007-01-15 07:48:09 +000010682007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1069
1070 * builds/amiga/makefile, builds/amiga/makefile.os4,
1071 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1072
1073 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1074
Werner Lemberg8c4120d2007-01-15 06:42:40 +000010752007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1076
1077 Fix various compiler warnings.
1078
1079 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1080 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1081 s/index/strike_index/.
1082 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1083
1084 * src/gxvalid/gxvmorx5.c
1085 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1086
1087 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1088 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1089 uninitialized variables.
1090
Werner Lemberg6164a9d2007-01-13 23:01:36 +000010912007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1092
1093 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1094
Werner Lemberg281c1482007-01-13 22:50:51 +000010952007-01-13 Werner Lemberg <wl@gnu.org>
1096
1097 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1098 versions up to 0x3FF without complaining.
1099
Werner Lembergac250b22007-01-13 14:01:36 +000011002007-01-13 Derek Clegg <dclegg@apple.com>
1101
1102 Add FT_Get_PS_Font_Info interface to CFF driver.
1103
1104 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1105 (CFF_FontRec): Add `font_info' field.
1106
1107 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1108 (cff_font_done): Free font->font_info if necessary.
1109
1110 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1111 (cff_service_ps_info): Register cff_ps_get_font_info.
1112
Werner Lemberg23df31a2007-01-13 08:45:00 +000011132007-01-13 Werner Lemberg <wl@gnu.org>
1114
1115 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1116 with C++ compiler.
1117
1118 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1119 af_glyph_hints_dump_edges): Ditto.
1120
1121 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1122 `modules.cfg').
1123
1124 * src/sfnt/ttsbit0.h: Remove.
1125
1126 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1127
Werner Lemberg27cf9de2007-01-13 07:34:23 +000011282007-01-12 David Turner <david@freetype.org>
1129
1130 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1131 bug in the bitmap emboldener if the pitch of the source bitmap is
1132 much larger than its width.
1133
1134 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1135 compilation warning.
1136
Werner Lemberg6d96d312007-01-12 10:30:19 +000011372007-01-12 Werner Lemberg <wl@gnu.org>
1138
1139 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1140 `automake' CVS module from sources.redhat.com.
1141
Werner Lemberg17432b52007-01-12 09:28:44 +000011422007-01-11 Werner Lemberg <wl@gnu.org>
1143
1144 * src/type1/t1load.c (is_space): Removed.
1145 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1146 (parse_charstrings): Use IS_PS_TOKEN.
1147
1148
1149 * autogen.sh: Avoid bash specific syntax.
1150
David Turner038ace22007-01-11 15:00:59 +000011512007-01-11 David Turner <david@freetype.org>
1152
Werner Lemberg17432b52007-01-12 09:28:44 +00001153 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001154
Werner Lemberg17432b52007-01-12 09:28:44 +00001155 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001156
Werner Lemberg17432b52007-01-12 09:28:44 +00001157 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1158 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001159 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001160
Werner Lemberg17432b52007-01-12 09:28:44 +00001161 * autogen.sh: Small fix to get it working on Mac OS X properly:
1162 The issue is that GNU libtool is called `glibtool' on this platform,
1163 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001164
David Turner2628ea92007-01-10 13:15:56 +000011652007-01-10 David Turner <david@freetype.org>
1166
Werner Lemberg17432b52007-01-12 09:28:44 +00001167 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1168 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001169
Werner Lemberg17432b52007-01-12 09:28:44 +00001170 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1171 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1172 version number to 2.3.0.
1173
1174 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1175 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001176
1177 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001178 include/freetype/ftlcdfil.h: Update reference documentation with
1179 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001180
Werner Lemberg17432b52007-01-12 09:28:44 +00001181 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1182 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001183
Werner Lembergbf02d392007-01-10 07:07:37 +000011842007-01-10 Derek Clegg <dclegg@apple.com>
1185
1186 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1187 values.
1188
David Turnerf48b60e2007-01-08 15:15:32 +000011892007-01-08 David Turner <david@freetype.org>
1190
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001191 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001192
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001193 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1194 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001195 corresponding to a given character pixel size.
1196
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001197 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1198 `gasp' table, in order to avoid potential problems with later
1199 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001200
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001201 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1202 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001203
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001204 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1205 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1206 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1207 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001208
Werner Lemberge6b6f372007-01-07 00:06:47 +000012092007-01-07 Werner Lemberg <wl@gnu.org>
1210
Werner Lembergb8004d22007-01-07 09:13:38 +00001211 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1212 Type 11 fonts.
1213 Scan for `/sfnts' token.
1214
12152007-01-07 Werner Lemberg <wl@gnu.org>
1216
1217 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001218
Werner Lembergbe5f7972007-01-06 07:51:48 +000012192007-01-06 Werner Lemberg <wl@gnu.org>
1220
1221 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1222 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1223
David Turnera8cf42b2007-01-04 16:46:46 +000012242007-01-04 David Turner <david@freetype.org>
1225
Werner Lembergf6294392007-01-06 07:47:45 +00001226 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1227 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001228
Werner Lembergf6294392007-01-06 07:47:45 +00001229
1230 Do not allocate interpreter-specific tables in memory if we are not
1231 going to load glyphs with the bytecode interpreter anyway.
1232
1233 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1234 only if glyph is hinted.
1235 Updated.
1236 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1237 and `cvs_ready'.
1238 Add `tt_size_ready_bytecode' declaration.
1239 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1240 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1241 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1242 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1243 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001244
David Turner91a34022007-01-05 14:47:08 +00001245
Werner Lembergf6294392007-01-06 07:47:45 +00001246 Don't extract the metrics table from the SFNT font file. Instead,
1247 reparse it on each glyph load. The runtime difference is not
1248 noticeable, and it can save a lot of heap memory when memory-mapped
1249 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001250
Werner Lembergf6294392007-01-06 07:47:45 +00001251 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1252 `horz_metrics_offset' and `vert_metrics_ofset'.
1253 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1254 Updated.
1255
1256
1257 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1258
1259
1260 Do not load the CFF index offsets into memory, since this wastes a
1261 *lot* of heap memory with large Asian CFF fonts. There is no
1262 significant performance loss.
1263
1264 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1265 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1266 `data_size'.
1267 (CFF_CharsetRec): Add field `num_glyphs'.
1268
1269 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1270 cff_charset_cid_to_gindex): New functions.
1271 (cff_new_index): Renamed to...
1272 (cff_index_init): This. Update all callers.
1273 Updated -- some code has been moved to `cff_index_load_offsets'.
1274 (cff_done_index): Renamed to...
1275 (cff_index_done): This. Update all callers.
1276 (cff_index_get_pointers, cff_index_access_element): Updated to use
1277 stream offsets.
1278 (cff_charset_compute_cids): Set `num_glyphs' field.
1279 (cff_encoding_load): Updated.
1280
1281 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001282
12832007-01-04 David Turner <david@freetype.org>
1284
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001285 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1286 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001287
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001288 * README.CVS: Add common problem description and solution
1289 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001290
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001291 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001292
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001293 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001294
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001295 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001296
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001297 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1298 (TWorker): This.
1299 Remove `count_table' and `memory'.
1300 Make `grays' a pointer.
1301 (TRaster): New structure.
1302 (count_table): New static array.
1303 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1304 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1305 ft_black_set_mode, ft_black_render): Updated.
1306 (ft_black_init): Don't initialize `count_table'.
1307 (ft_black_reset): Use the render pool. This saves about 6KB of
1308 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001309
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001310 * src/smooth/ftgrays.c (TRaster): Replaced with...
1311 (TWorker): This.
1312 Remove `memory'.
1313 (TRaster): New structure.
1314
1315 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1316 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1317 gray_render_span, gray_raster_render): Updated.
1318 (gray_raster_reset): Use the render pool. This saves about 6KB of
1319 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001320
David Turner8a6c44e2007-01-04 17:03:11 +00001321 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1322 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001323 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1324 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1325 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001326
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001327 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1328 Remove a typo that results in no hinting and a memory leak with some
1329 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001330
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001331 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001332 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001333 CFF_Faces in it. We need to close all faces before destroying the
1334 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001335
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000013362007-01-02 Werner Lemberg <wl@gnu.org>
1337
1338 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1339 Remove compiler warning.
1340
David Turner9207e002007-01-02 16:58:13 +000013412007-01-02 David Turner <david@freetype.org>
1342
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001343 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001344
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000013452006-12-31 Masatake YAMATO <jet@gyve.org>
1346
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001347 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1348 function.
1349 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001350 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001351 `gxv_kern_subtable_fmt0_pairs_validate'.
1352
David Turner115b4422006-12-22 11:37:05 +000013532006-12-22 David Turner <david@freetype.org>
1354
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001355 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1356 warnings.
David Turner115b4422006-12-22 11:37:05 +00001357
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001358 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1359 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001360
Werner Lemberg4755bf72006-12-16 08:58:44 +000013612006-12-16 Anders Kaseorg <anders@kaseorg.com>
1362
1363 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1364 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1365
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000013662006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1367
Werner Lemberg9b774e22007-01-16 06:11:27 +00001368 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001369 sync with the modification by Jens Claudius on 2006-08-22; cf.
1370 http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +00001371
13722006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1373
1374 * src/base/ftmac.c: Specialized for Mac OS X only.
1375 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1376 * builds/unix/configure.raw: Ditto. When explicit switches for
1377 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1378 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1379
13802006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1381
1382 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1383 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1384 instead of src/base/ftmac.c
1385 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1386 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1387 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1388 that cannot be built at present.
1389
13902006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1391
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001392 * src/base/ftobjs.c: Improvement of resource fork handler for
1393 POSIX, cf.
1394 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001395 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1396 format or .dfont, to simulate the face index number counted by ftmac.c.
1397 (IsMacResource): Return the number of scalable faces correctly.
1398
Werner Lembergec5b4502006-12-10 07:51:38 +000013992006-12-10 Werner Lemberg <wl@gnu.org>
1400
1401 * builds/toplevel.mk (version): Protect against `distclean' target.
1402
Werner Lembergb26b3142006-12-09 20:01:43 +000014032006-12-09 Werner Lemberg <wl@gnu.org>
1404
1405 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1406 or `type'.
1407
1408 * builds/freetype.mk (version): Extracted from freetype.h, using
1409 GNU make's built-in string functions.
1410 (refdoc): Use $(version) instead of static version number.
1411
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000014122006-12-08 Werner Lemberg <wl@gnu.org>
1413
1414 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1415
Werner Lemberg15c29502006-12-09 07:29:54 +000014162006-12-08 Vladimir Volovich <vvv@vsu.ru>
1417
1418 * src/tools/apinames (State): Remove final comma in structure -- xlc
1419 v5 under AIX 4.3 doesn't like this.
1420
David Turnerdbf3b432006-12-07 21:18:09 +000014212006-12-07 David Turner <david@freetype.org>
1422
Werner Lemberg256a3512006-12-08 06:49:33 +00001423 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1424 to the spacing of auto-fitted glyphs. This only impacts rare
1425 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001426
Werner Lemberg11171312006-12-03 09:43:40 +000014272006-12-03 Werner Lemberg <wl@gnu.org>
1428
1429 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1430
Werner Lemberg960ba592006-12-01 08:20:47 +000014312006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001432
Werner Lemberg960ba592006-12-01 08:20:47 +00001433 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1434 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1435 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001436
David Turner80658e52006-11-28 08:09:20 +00001437
Werner Lemberg960ba592006-12-01 08:20:47 +00001438 * include/freetype/ftxf86.h: Fix and extend comment so that it
1439 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001440
Werner Lemberg960ba592006-12-01 08:20:47 +00001441 * include/freetype/ftchapters.h: Add `font_format' section.
1442
1443
1444 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1445 to TOC in index page.
1446
14472006-11-28 David Turner <david@freetype.org>
1448
1449 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1450 trying to render into a zero-width/height bitmap, not an error code.
1451
1452 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1453
1454 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1455 ones instead.
1456
1457 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1458 variable.
David Turner80658e52006-11-28 08:09:20 +00001459
Werner Lemberg8636c292006-11-26 22:28:13 +000014602006-11-26 Pierre Hanser <hanser@club-internet.fr>
1461
1462 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1463
Werner Lemberg960ba592006-12-01 08:20:47 +000014642006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001465
Werner Lemberg960ba592006-12-01 08:20:47 +00001466 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1467 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1468 Add stubs to link the `ftgrid' test program when debugging is
1469 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001470
Werner Lemberg960ba592006-12-01 08:20:47 +000014712006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001472
1473 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001474 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1475
1476 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1477 Emit more sensible information.
1478
1479 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1480
1481 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1482 rounding of blue values.
1483 (af_latin_hints_compute_segments): Hint segment heights.
1484 (af_latin_hints_link_segments): Reduce `len_score' value.
1485 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1486 value and use `height' member for comparisons.
1487 (af_latin_hint_edges): Extend logging message.
1488 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001489
Werner Lemberg91959bf2006-11-22 10:36:55 +000014902006-11-22 Werner Lemberg <wl@gnu.org>
1491
1492 Fix Savannah bug #15553.
1493
1494 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1495 program after a change from mono to grayscaling (and vice versa).
1496 Use correct constant for comparison to get `exec->grayscale'.
1497
Werner Lemberg913a3652006-11-19 09:19:17 +000014982006-11-18 Werner Lemberg <wl@gnu.org>
1499
1500 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001501 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001502 This patch fixes Savannah bug #18301.
1503
1504 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1505 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1506 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1507 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1508 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1509 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1510 (FNT_Load_Glyph): Check validity of `glyph_index'.
1511
David Turner7bab6ae2006-11-13 11:25:06 +000015122006-11-13 David Turner <david@freetype.org>
1513
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001514 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1515 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001516
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001517 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1518 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1519 when building the library to change the default LCD filter to be
1520 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001521
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001522 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001523
David Turner8765c712006-11-10 16:49:42 +000015242006-11-10 David Turner <david@freetype.org>
1525
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001526 * src/smooth/ftsmooth.c: API change for the LCD
1527 filter. The FT_LcdFilter value is an enumeration describing which
1528 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1529 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1530 algorithm which produces strong color fringes for everything
1531 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001532
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001533 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1534 second parameter to an enum type.
1535
1536 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1537 (_ft_lcd_filter): Rename to...
1538 (_ft_lcd_filter_fir): This.
1539 Update parameters.
1540 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1541 (FT_Library_Set_LcdFilter): Update parameters.
1542 Handle new filter modes.
1543
1544 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1545 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1546 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1547 callback and update other fields.
1548
1549 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1550 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1551 Other minor improvements.
1552
1553 * src/autofit/aflatin.c: Various tiny improvements that drastically
1554 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1555 (af_latin_hints_compute_edges): Fix typo.
1556 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001557
David Turner4e9cc3c2006-11-09 16:31:52 +000015582006-11-09 David Turner <david@freetype.org>
1559
Werner Lemberg49c77a82006-11-09 21:51:57 +00001560 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1561 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001562
Werner Lemberg5e430892006-11-07 09:35:03 +000015632006-11-07 Zhe Su <james.su@gmail.com>
1564
1565 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1566 also.
1567
Werner Lemberg111b5ae2006-11-03 09:40:12 +000015682006-11-03 Werner Lemberg <wl@gnu.org>
1569
1570 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1571
David Turner40604742006-11-02 16:37:35 +000015722006-11-02 David Turner <david@freetype.org>
1573
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001574 Add a few tweaks to better handle serif fonts.
1575 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001576
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001577 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1578 segments that are less than 1.5 pixels high. This gets rid of
1579 *many* corner cases with serifs.
1580 (af_latin_align_linked_edge): Add logging message.
1581 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1582 Add logging messages.
1583 Handle AF_EDGE_FLAG flag specially.
1584
1585 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1586 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1587
1588 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1589 Update external declarations.
1590 (af_corner_orientation, af_corner_is_flat): Replaced by...
1591
1592 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1593 ft_corner_is_flat): These declarations.
1594
1595 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1596 Comment out. Replaced by...
1597
1598 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1599 These functions. Update all callers.
1600 (FT_Add64) [!FT_LONG64]: Simplify.
1601
1602 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1603 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1604 production of garbage by missing lots of segments.
1605
1606 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1607
1608 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1609 [AF_DEBUG]: Set _af_debug_hints.
1610
1611
1612 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1613 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1614 and ft_corner_orientation.
1615
1616
1617 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001618
Werner Lemberge88c5262006-10-24 05:46:26 +000016192006-10-24 Werner Lemberg <wl@gnu.org>
1620
1621 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1622
1623 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1624 as argument.
1625
David Turnera1861392006-10-23 16:00:59 +000016262006-10-23 Zhe Su <zsu@novell.com>
1627
Werner Lemberg715e96e2006-10-24 05:28:45 +00001628 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1629 better deal with broken Asian fonts with strange glyphs, having
1630 self-intersections and other peculiarities. The used algorithm is
1631 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001632
David Turnere140f142006-10-23 08:56:57 +000016332006-10-23 David Turner <david@freetype.org>
1634
Werner Lemberg715e96e2006-10-24 05:28:45 +00001635 Speed up the CFF font loader. With some large CFF fonts,
1636 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001637
Werner Lemberg715e96e2006-10-24 05:28:45 +00001638 * src/cff/cffload.c (cff_get_offset): Removed.
1639 (cff_new_index): Inline functionality of `cff_get_offset'.
1640 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1641 (cff_charset_done): Call `cff_charset_free_cids'.
1642 (cff_charset_load): Call `cff_charset_compute_cids'.
1643 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1644
1645 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1646 with FT_NEXT_XXX.
1647
1648
1649 Speed up the Postscript hinter, with more than 100% speed increase
1650 on my machine.
1651
1652 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1653 psh_corner_orientation): New functions.
1654 (psh_glyph_compute_inflections): Merge loops for efficiency.
1655 Use `psh_corner_orientation'.
1656 (psh_glyph_init): Use `psh_corner_is_flat'.
1657 (psh_hint_table_find_strong_point): Renamed to...
1658 (psh_hint_table_find_strong_points): This.
1659 Rewrite, adding argument to handle all points at once.
1660 Update all callers.
1661 (PSH_MAX_STRONG_INTERNAL): New macro.
1662 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001663
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000016642006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1665
1666 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001667 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001668
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000016692006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1670
1671 * docs/INSTALL.CROSS: New document file for cross-building.
1672
1673 * builds/unix/configure.raw: Preliminary cross-building support.
1674 Find native C compiler and pass it by CC_BUILD, and
1675 find suffix for native executable and pass it by EXEEXT_BUILD.
1676 Also suffix for target executable is passed by EXEEXT.
1677
Werner Lembergb9e6d692006-10-15 08:58:40 +00001678 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1679 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001680 CC_BUILD and EXEEXT_BUILD.
1681
Werner Lembergb9e6d692006-10-15 08:58:40 +00001682 * builds/exports.mk (APINAMES_EXE): Change the extension for
1683 apinames from the suffix for target (E) to that for building host
1684 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001685
Werner Lemberg82a07e92006-10-12 06:20:44 +000016862006-10-12 Werner Lemberg <wl@gnu.org>
1687
1688 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1689 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1690 which reference those files.
1691
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000016922006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1693
Werner Lembergb9e6d692006-10-15 08:58:40 +00001694 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1695 embedded in freetype2.pc and freetype-config. Use it to record
1696 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001697
1698 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1699
1700 * builds/unix/freetype-config.in: Ditto.
1701
Werner Lemberg28e17d92006-10-11 17:27:47 +000017022006-10-11 Werner Lemberg <wl@gnu.org>
1703
1704 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1705 development.
1706
Jens Claudius336d2292006-10-03 08:53:37 +000017072006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1708
1709 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1710 argument to ft_setjmp.
1711
1712 * include/freetype/internal/ftvalid.h: Add comment that
1713 ft_validator_run must not be used.
1714
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017152006-10-01 Werner Lemberg <wl@gnu.org>
1716
1717 * src/base/ftbase.c: Undo change from 2006-09-30.
1718
1719 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1720
17212006-09-30 David Turner <david@freetype.org>
1722
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001723 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1724 s/unpatented_hinting/ignore_unpatented_hinter/.
1725 Update all callers.
1726
1727 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1728 auto-hinting shall be used or not.
1729
1730 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001731
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017322006-09-30 Werner Lemberg <wl@gnu.org>
1733
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001734 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1735 in use).
1736
1737 * src/base/ftbase.c: Include `ftlcdfil.c'.
1738
Werner Lemberg9b15ea32006-09-29 18:22:11 +000017392006-09-29 Werner Lemberg <wl@gnu.org>
1740
1741 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1742 overlapping segments. Bug reported by Stefan Koch.
1743
David Turnerad830712006-09-27 16:20:59 +000017442006-09-28 David Turner <david@freetype.org>
1745
Werner Lemberg2c002e12006-09-29 21:31:53 +00001746 Fix a bug in the automatic unpatented hinting support which prevents
1747 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001748
Werner Lemberg2c002e12006-09-29 21:31:53 +00001749 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1750 s/force_autohint/unpatented_hinting/. Update all callers.
1751
1752 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1753
1754 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001755
David Turner8a317cf2006-09-27 07:52:48 +000017562006-09-27 David Turner <david@freetype.org>
1757
Werner Lemberg2c002e12006-09-29 21:31:53 +00001758 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001759
David Turner8a317cf2006-09-27 07:52:48 +00001760
David Turnere140f142006-10-23 08:56:57 +00001761 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001762 In a default build, the function `FT_Library_SetLcdFilter' returns
1763 `FT_Err_Unimplemented_Feature'; you need to #define
1764 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1765 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001766
Werner Lemberg2c002e12006-09-29 21:31:53 +00001767 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001768
Werner Lemberg2c002e12006-09-29 21:31:53 +00001769 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1770 typedef.
1771 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1772 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001773
Werner Lemberg2c002e12006-09-29 21:31:53 +00001774 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1775 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001776
Werner Lemberg2c002e12006-09-29 21:31:53 +00001777 Handle subpixel rendering.
1778 Simplify function.
1779 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1780 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1781
1782 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1783 pointing to <freetype/ftlcdfil.h>.
1784
1785 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1786 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1787
1788 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001789
Werner Lemberge20df4a2006-09-27 06:29:21 +000017902006-09-26 David Bustin
1791
1792 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1793 correctly. Reported as Savannah bug #17843.
1794
David Turner6f8c6222006-09-26 15:42:44 +000017952006-09-26 David Turner <david@freetype.org>
1796
Werner Lemberg110246c2006-09-26 21:55:44 +00001797 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1798 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1799 horizontal and vertical hinting for the purpose of debugging the
1800 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001801
Werner Lemberg110246c2006-09-26 21:55:44 +00001802 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1803 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001804
Werner Lemberg110246c2006-09-26 21:55:44 +00001805 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1806
1807 * include/freetype/config/ftoption.h, devel/ftoption.h
1808 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1809 we want to compile LCD-optimized rendering code (à la ClearType) or
1810 not. The macro *must* be disabled in default builds of the library
1811 for patent reasons.
1812
1813 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1814 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1815 isn't defined at compile time. This only changes the content of the
1816 rendered glyph to match the one of normal gray-level rendering,
1817 hence clients should not need to be modified.
1818
1819 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001820
Werner Lemberg745ff2c2006-09-19 05:48:02 +000018212006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1822
1823 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1824 LWFN fails and both are available.
1825
David Turnerf3050052006-09-11 12:00:32 +000018262006-09-11 David Turner <david@freetype.org>
1827
Werner Lembergf9644552006-09-12 13:48:10 +00001828 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1829 report their English names through an Apple Roman
1830 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001831
Werner Lembergf9644552006-09-12 13:48:10 +00001832 If the font uses another name entry with language_id == English, it
1833 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001834
Werner Lembergf9644552006-09-12 13:48:10 +00001835 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1836 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001837
Werner Lemberg36d2eab2006-09-05 19:24:34 +000018382006-09-05 Werner Lemberg <wl@gnu.org>
1839
1840 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001841 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001842 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1843 `HAN NOM B.ttf').
1844
1845 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1846
David Turner772e55d2006-09-05 09:45:15 +000018472006-09-05 David Turner <david@freetype.org>
1848
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001849 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001850
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001851 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1852 (TRaster): Remove `count_ex' and `count_ey'.
1853 (gray_find_cell): Remove 2nd and 3rd argument.
1854 (gray_alloc_cell): Merged with `gray_find_cell'.
1855 (gray_record_cell): Simplify.
1856 (gray_set_cell): Rewrite.
1857 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1858 (gray_render_span): Don't use FT_MEM_SET for small values.
1859 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1860 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1861 bitmap scanline.
1862 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001863
David Turneraa557a92006-09-04 16:42:44 +000018642006-09-04 David Turner <david@freetype.org>
1865
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001866 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1867 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001868
Werner Lemberg2d8629b2006-09-03 06:18:45 +000018692006-09-03 Werner Lemberg <wl@gnu.org>
1870
1871 * devel/ftoption.h: Synchronize with
1872 include/freetype/config/ftoption.h.
1873
1874 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1875 variable declaration.
1876 (gray_convert_glyph): Fix compiler warnings.
1877
David Turner6d79f212006-09-01 14:09:35 +000018782006-09-01 David Turner <david@freetype.org>
1879
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001880 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1881 to recognize a few fonts that require the automatic unpatented
1882 loader.
David Turnerbd502952006-09-01 19:05:24 +00001883
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001884 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1885 rasterizer. The speed improvement is between 15% and 25%, depending
1886 on the font data.
1887
1888 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1889 (TCell): Redefine.
1890 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1891 (gray_init_cells): Updated.
1892 (gray_find_cell, gray_alloc_cell): New functions.
1893 (gray_record_cell): Rewritten to use `gray_find_cell' and
1894 `gray_alloc_cell'.
1895 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1896 QSORT_THRESHOLD):
1897 Removed.
1898 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1899 gray_dump_cells): Removed.
1900 (gray_sweep): Rewritten.
1901 (gray_convert_glyph): Rewrite code which used one of the sorting
1902 functions.
1903 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001904
Werner Lembergd898aed2006-08-29 09:50:34 +000019052006-08-29 Dr. Werner Fink <werner@suse.de>
1906
1907 * configure: Make it possible to handle configure options which
1908 have strings containing spaces.
1909
19102006-08-27 David Turner <david@freetype.org>
1911
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001912 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1913 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1914 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1915
1916 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1917 src/truetype/truetype.c, src/truetype/ttdriver.c,
1918 src/truetype/ttgload.c, src/truetype/ttgload.h,
1919 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1920 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1921 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1922
1923 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1924 member `force_autohint'.
1925
1926 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1927
1928 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1929 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001930
Jens Claudiusa787f452006-08-27 11:26:18 +000019312006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1932
1933 Fix miscellaneous compiler warnings.
1934
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001935 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1936 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001937
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001938 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1939 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1940 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001941
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001942 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1943 volatileness of argument to ft_longjmp. Spotted by Werner
1944 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001945
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001946 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1947 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001948
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001949 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1950 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001951
Werner Lembergc4c35b72006-08-27 08:03:46 +000019522006-08-27 Werner Lemberg <wl@gnu.org>
1953
1954 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1955 Reported by Jens.
1956
Jens Claudius088e44e2006-08-22 14:24:30 +000019572006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001958
Jens Claudius088e44e2006-08-22 14:24:30 +00001959 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001960 about addresses of volatile objects passed as function arguments as
1961 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001962
Werner Lembergc4c35b72006-08-27 08:03:46 +00001963 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1964 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001965
1966 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1967 argument `table' a pointer to a volatile object.
1968
1969 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1970 argument `table' a pointer to a volatile object.
1971
Jens Claudius2652bd52006-08-18 17:20:37 +000019722006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1973
1974 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1975 variable `_sfnt' as volatile since it must keep its value across
1976 a call to ft_setjmp.
1977 (gxv_validate): Same for local variables `memory' and `valid'.
1978 (classic_kern_validate): Same for local variables `memory',
1979 `ckern', and `valid'.
1980
1981 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1982 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1983 `jstf', and 'valid'.
1984
1985 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1986 local variable `cmap'.
1987
David Turner9fbfc6a2006-08-16 09:11:31 +000019882006-08-16 David Turner <david@freetype.org>
1989
Werner Lemberg12342992006-08-19 11:18:09 +00001990 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1991 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001992
Werner Lemberg12342992006-08-19 11:18:09 +00001993 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1994 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001995
David Turner33f5f242006-08-16 16:50:55 +00001996
Werner Lemberg12342992006-08-19 11:18:09 +00001997 Improvements to native TrueType hinting. This is a first try,
1998 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1999
2000 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
2001 `extra_points2'.
2002
2003 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
2004 `orus'.
2005
2006 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
2007 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
2008 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
2009 handle `extra_points2'.
2010
2011 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2012 Remove compiler warning.
2013 (cur_to_arg): Remove macro.
2014 (TT_Hint_Glyph): Updated.
2015 (TT_Process_Simple_Glyph): Handle `orus'.
2016
2017 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2018 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2019 (LOC_Ins_IUP): Renamed to...
2020 (IUP_WorkerRec): This.
2021 Add `orus' member.
2022 (Shift): Renamed to...
2023 (_iup_worker_shift): This.
2024 Updated.
2025 (Interp): Renamed to...
2026 (_iup_worker_interpolate): This.
2027 Updated to handle `orus'.
2028 (Ins_IUP): Updated.
2029
2030 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2031 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00002032
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000020332006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2034
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002035 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00002036 build ftvalid in ft2demos. This has been inadvertedly changed
2037 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002038
20392006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2040
Werner Lemberg12342992006-08-19 11:18:09 +00002041 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2042 Jens:
2043 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002044
Werner Lemberg12342992006-08-19 11:18:09 +00002045 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2046 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002047
2048 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2049
Jens Claudius9950adc2006-08-13 12:14:36 +000020502006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2051
Werner Lemberg12342992006-08-19 11:18:09 +00002052 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2053 T1_TOKEN_TYPE_KEY.
2054 (T1_FieldRec): Add `dict'.
2055 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2056 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2057 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002058
Werner Lemberg12342992006-08-19 11:18:09 +00002059 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2060 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002061
2062 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2063
2064 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002065 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2066 not T1_TOKEN_TYPE_ANY.
2067 (ps_parser_load_field): Make sure a token that should be a string or
2068 name is really a string or name.
2069 Avoid memory leak if a keyword has been already encountered and its
2070 value is overwritten.
2071 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2072 T1_FIELD_XXX.
2073 (parse_dict): Ignore keywords that occur in the wrong dictionary
2074 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002075
Werner Lemberg12342992006-08-19 11:18:09 +00002076 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2077 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002078
Werner Lemberg12342992006-08-19 11:18:09 +00002079 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2080 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002081
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000020822006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2083
2084 Move creation of field `buildchar' of T1_DecoderRec out of
2085 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2086 of it.
2087
2088 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2089 and `T1_Compute_Max_Advance'.
2090
2091 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2092 Remove field `face', add `len_buildchar'.
2093
2094 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2095 field `buildchar'.
2096
2097 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2098 finisher for T1_Decoder.
2099 (cid_slot_load_glyph): Do not ignore failure when initializing the
2100 T1_Decoder.
2101
2102 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2103 Updated.
2104 (t1_decoder_init): Remove initialization of fields `buildchar' and
2105 `len_buildchar'.
2106 (t1_decoder_done): Remove deallocation of field `buildchar'.
2107
2108 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2109 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2110 T1_Decoder.
2111 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2112 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2113 case of error.
2114
2115 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2116 `buildchar' of T1_FaceRec.
2117
2118 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2119 `buildchar' of T1_FaceRec.
2120
Werner Lemberg1a380e02006-07-14 18:28:08 +000021212006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2122
2123 * freetype2/include/freetype/internal/psaux.h: New macros
2124 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2125 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2126 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2127 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2128 (T1_DecoderRec): New fields `buildchar' and `face'.
2129 (IS_PS_TOKEN): New macro.
2130
2131 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2132 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2133
2134 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2135 `default_design_vector' and `num_default_design_vector'.
2136
2137 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2138 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2139 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2140
2141 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2142 `token' argument to be NULL if we want only to count the number of
2143 tokens.
2144 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2145 want to skip the array.
2146 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2147 want to skip the array.
2148
2149 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2150 support for (partially commented out) othersubrs 19-25, 27, and 28.
2151 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2152 (t1_decoder_done): Release new field `buildchar'.
2153
2154 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2155 functions.
2156 (t1_keywords): Register them.
2157 (t1_allocate_blend): Updated.
2158 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2159 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2160 (parse_dict): Remove `keyword_flags' argument.
2161 Use new macro IS_PS_TOKEN.
2162 Changed function so that later PostScript definitions override
2163 earlier ones.
2164 (t1_init_loader): Initialize new field `keywords_encountered'.
2165 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2166 `len_buildchar'.
2167 Remove `keywords_flags'.
2168
2169 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2170 `keywords_encountered'.
2171 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2172
2173 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2174 New entries for parsing /NDV, /CDV, and /DesignVector.
2175
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000021762006-07-07 Werner Lemberg <wl@gnu.org>
2177
2178 Add many checks to protect against malformed PCF files.
2179
2180 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2181 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2182
2183 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2184 data and check that tables don't overlap (using a simple
2185 bubblesort).
2186 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2187 New macros which give the size of data structures in the data
2188 stream.
2189 (pcf_get_properties): Use rough estimates to get array size limits.
2190 Assign `face->nprops' and `face->properties' earlier so that a call
2191 to PCF_Face_Done can do the clean-up in case of error.
2192 Protect against invalid string offsets.
2193 (pcf_get_metrics): Clean up code.
2194 Adjust tracing message levels.
2195 Use rough estimate to get array size limit.
2196 (pcf_get_bitmaps): Clean up code.
2197 Adjust tracing message levels.
2198 Use rough estimates to get offset limits.
2199 (pcf_get_encodings): Adjust tracing message level.
2200 (pcf_get_accel): Clean up code.
2201
Werner Lemberg8eb05252006-06-27 06:20:01 +000022022006-06-26 Werner Lemberg <wl@gnu.org>
2203
2204 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2205 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2206
Werner Lemberg24703f82006-06-26 19:12:51 +000022072006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2208
2209 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2210 (t1_decoder_parse_charstrings): Operator with
2211 opcode 15 pops its two arguments.
2212 Handle the case where the pops of an othersubr may be part of a
2213 subroutine.
2214 Handle unknown othersubrs gracefully: count their operands and let
2215 the following pop operators push the operands as the results onto
2216 the Type1 stack.
2217 Improve handling of setcurrentpoint opcode.
2218
Werner Lembergc011f4c2006-06-26 09:40:00 +000022192006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2220
2221 The Type 1 parser now skips over top-level procedures as required
2222 for a `Simplified Parser'. This makes the parser more robust as it
2223 doesn't poke around in PostScript code. Additionally, it makes the
2224 FontDirectory hackery in src/type1/t1load.c unnecessary.
2225
2226 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2227 (skip_literal_string): Add FT_Error as return value.
2228 Handle escapes better.
2229 (skip_string): Add FT_Error as return value.
2230 Don't set `parser->error' but return error code directly.
2231 (skip_procedure): New function.
2232 (ps_parser_skip_PS_token): Handle procedures.
2233 Update code.
2234 (ps_parser_to_token): Update code.
2235 (ps_parser_load_field_table): Handle bbox entries also.
2236
2237 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2238 Add commented-out code for synthetic fonts.
2239
Werner Lemberga2da05c2006-06-25 06:27:27 +000022402006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2241
2242 Fix two hinting bugs as reported in
2243 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2244
2245 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2246 `first_point' member.
2247
2248 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2249 `first_point'.
2250 (TT_Process_Composite_Glyph): Always untouch points.
2251
2252 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2253 `first_point' and `last_point' in case of composite glyphs.
2254 (Ins_IUP): Fix computation of `end_point'.
2255
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000022562006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2257
Werner Lembergef3d2c22006-06-25 06:07:14 +00002258 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2259 Mac. The original patch was written by David Sachitano and Lawrence
2260 Coopet, and modified by Sean McBride for MPW compatibility. Only
2261 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002262
Werner Lembergef3d2c22006-06-25 06:07:14 +00002263 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2264 Mac OS X platforms.
2265 (OS_INLINE): Undefine before definition.
2266 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2267 FontAssociation table in FOND resource.
2268 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2269 and fontSize at each entry of FontAssociation table in FOND
2270 resource.
2271 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2272 ffStylOff of FamilyRecord header of FOND resource, the header,
2273 fontSize, fontID at each entry of FontAssociation table, and
2274 StyleMapping table.
2275 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002276
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000022772006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2278
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002279 Public API of TrueTypeGX, OpenType, and classic kern table validator
2280 should return `FT_Err_Unimplemented_Feature' if validation service
2281 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002282 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002283 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2284
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002285 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2286 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2287 unavailable.
2288 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2289 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002290
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002291 * src/base/ftotval.c (FT_OpenType_Validate): Return
2292 FT_Err_Unimplemented_Feature if OpenType validation service is
2293 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002294
Werner Lembergb10e45a2006-06-08 07:32:56 +000022952006-06-08 Werner Lemberg <wl@gnu.org>
2296
2297 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2298 errors.
2299
David Turner5f1f7502006-06-07 05:11:50 +000023002006-06-07 David Turner <david@freetype.org>
2301
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002302 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2303 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2304 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002305
David Turner457b4a82006-06-06 08:14:14 +000023062006-06-06 David Turner <david@freetype.org>
2307
Werner Lemberg4836f952006-06-06 12:54:08 +00002308 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002309
Werner Lemberg4836f952006-06-06 12:54:08 +00002310 We change `ps_unicodes_init' so that it also takes a
2311 `free_glyph_name' callback to release the glyph names returned by
2312 `get_glyph_name'
2313
2314 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2315 Renamed to ...
2316 (PS_GetGlyphNameFunc): This.
2317 (PS_FreeGlyphNameFunc): New typedef.
2318 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2319
2320 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2321 argument.
2322 (cff_sid_free_glyph_name): New function.
2323 (cff_cmap_unicode_init): Updated.
2324
2325 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2326
2327 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2328 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002329
2330
David Turner09717352006-06-04 14:33:08 +000023312006-06-04 David Turner <david@freetype.org>
2332
Werner Lembergd724f202006-06-04 15:17:41 +00002333 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2334 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002335 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002336
Werner Lembergd724f202006-06-04 15:17:41 +00002337 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2338 of `face->num_glyphs' which missed the last glyph, due to
2339 the offset-by-1 computation, since the PFR format doesn't
2340 guarantee that glyph index 0 corresponds to the `missing
2341 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002342
Werner Lemberg33779662006-05-26 06:30:05 +000023432006-05-25 Werner Lemberg <wl@gnu.org>
2344
2345 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2346 `-no-undefined'. Reported by Christian Biesinger.
2347
Werner Lemberg24773d62006-05-20 08:53:13 +000023482006-05-19 Brian Weed <bw@imaginengine.com>
2349
2350 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2351 have debug information, and debug libraries use `C7 compatible'
2352 debug info.
2353
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000023542006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2355
Werner Lemberga6523a62006-05-20 08:47:01 +00002356 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002357 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002358
Werner Lemberga6523a62006-05-20 08:47:01 +00002359 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2360 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002361
2362 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002363 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002364
23652006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2366
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002367 * build/unix/configure.raw: Add a fallback to disable Carbon
2368 dependency, if configured with no options on Mac OS X.
2369
23702006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2371
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002372 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002373 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002374 the second part of Savannah bug #16590.
2375
Werner Lemberg545c4e52006-05-17 22:55:04 +000023762006-05-18 Werner Lemberg <wl@gnu.org>
2377
2378 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2379 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2380
David Turnerdc3ff312006-05-17 12:59:35 +000023812006-05-17 David Turner <david@freetype.org>
2382
Werner Lemberg545c4e52006-05-17 22:55:04 +00002383 This is a major patch used to drastically improve the performance of
2384 loading glyphs. This both speeds up loading the glyph vectors
2385 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002386
Werner Lemberg545c4e52006-05-17 22:55:04 +00002387 We now use inline assembler code with GCC to implement `FT_MulFix',
2388 which is probably the most important function related to the
2389 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002390
Werner Lemberg545c4e52006-05-17 22:55:04 +00002391 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002392
2393
Werner Lemberg545c4e52006-05-17 22:55:04 +00002394 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2395 `cursor' and `limit'.
2396
2397 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2398 New functions.
2399 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2400 [TEST]: Remove.
2401
2402 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2403 code.
2404
2405 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2406 `FT_ZERO'
2407 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2408 (af_glyph_hints_reload: Rewrite recognition of weak points.
2409
2410 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2411 constant values out of the loops.
2412
2413 * src/autofit/aftypes.h: Updated.
2414
2415 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2416
2417 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2418 product to get orientation.
2419
2420 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2421 (FT_Stream_OpenGzip): Use it to handle small files directly in
2422 memory.
2423
2424 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2425 Improve performance.
2426
2427 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2428 `limit'.
2429
2430 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2431 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2432 exceedingly large values of number of contours. Speed up by
2433 reducing the number of loops.
2434
2435 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2436
2437
2438 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2439 used to detect rogue clients from 4 to 16. This is to prevent some
2440 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2441 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002442
Werner Lembergde2d90a2006-05-17 08:54:30 +000024432007-05-17 Werner Lemberg <wl@gnu.org>
2444
2445 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002446 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002447
24482006-05-16 Werner Lemberg <wl@gnu.org>
2449
2450 * docs/PROBLEMS: Updated icl issues.
2451
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002452----------------------------------------------------------------------------
2453
Werner Lemberg42b63b22007-01-21 21:01:33 +00002454Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002455David Turner, Robert Wilhelm, and Werner Lemberg.
2456
2457This file is part of the FreeType project, and may only be used, modified,
2458and distributed under the terms of the FreeType project license,
2459LICENSE.TXT. By continuing to use, modify, or distribute this file you
2460indicate that you have read the license and understand and accept it
2461fully.
2462
2463
2464Local Variables:
2465version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002466coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002467End: