blob: c5b80ce6a4d2963da8433f88c7ed960c01026e7b [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 Lemberg3033f432007-07-04 14:12:19 +00006 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
7 recursion depth of 1. This was the maximum value in TrueType 1.0,
8 and some older fonts don't set this field correctly.
9
10 * src/gxvalid/gxvmort1.c
11 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
12
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000132007-07-03 Werner Lemberg <wl@gnu.org>
14
15 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
16 `round' to pacify compiler.
17
182007-07-02 Werner Lemberg <wl@gnu.org>
19
20
21 * Version 2.3.5 released.
22 =========================
23
24
25 Tag sources with `VER-2-3-5'.
26
27 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
28 version number to 2.3.5.
29
30 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
31 builds/win32/visualc/freetype.dsp,
32 builds/win32/visualc/freetype.vcproj,
33 builds/win32/visualce/index.html,
34 builds/win32/visualce/freetype.dsp,
35 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
36
37 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
38
39 * builds/unix/configure.raw (version_info): Set to 9:16:3.
40
David Turner0ba89912007-07-01 09:34:04 +0000412007-07-01 David Turner <david@freetype.org>
42
Werner Lemberge3be90b2007-07-02 14:58:58 +000043 * include/freetype/freetype.h, src/base/ftpatent.c
44 (FT_Face_SetUnpatentedHinting): New function to dynamically change
45 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +000046
Werner Lemberge3be90b2007-07-02 14:58:58 +000047 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
48 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +000049
David Turner74cc0e92007-06-30 22:54:12 +0000502007-06-30 David Turner <david@freetype.org>
51
Werner Lemberge3be90b2007-07-02 14:58:58 +000052 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
53 initialization.
David Turner74cc0e92007-06-30 22:54:12 +000054
Werner Lemberge3be90b2007-07-02 14:58:58 +000055 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
56 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +000057
Werner Lemberg7723dc32007-06-26 04:44:35 +0000582007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
59
60 Add autofit module for Indic scripts. This currently just reuses
61 the CJK-specific functions.
62
63 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
64 macro.
65 * devel/ftoption.h: Synchronize with
66 include/freetype/config/ftoption.h.
67
68 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
69
70 * src/autofit/afglobal.c, src/autofit/aftypes.h,
71 src/autofit/autofit.c: Updated.
72
73 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
74 (AUTOF_DRV_SRC): Updated.
75
David Turner8f626b02007-06-22 22:22:38 +0000762007-06-23 David Turner <david@freetype.org>
77
Werner Lemberg7854c4a2007-06-23 07:16:20 +000078 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
79 2007-06-16 that prevented the TrueType module from loading most
80 glyphs.
David Turner8f626b02007-06-22 22:22:38 +000081
Werner Lemberg5b4d4352007-06-20 07:07:55 +0000822007-06-20 Werner Lemberg <wl@gnu.org>
83
84 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
85 change.
86
Werner Lemberg9fe58152007-06-19 07:57:30 +0000872007-06-19 Werner Lemberg <wl@gnu.org>
88
89 * src/type1/t1load.c (parse_encoding): Handle one more error.
90
Werner Lemberg5a829392007-06-19 04:53:30 +0000912007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
92
93 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
94 FNT_Err_Invalid_File_Format if file format was recognized but
95 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
96 Add verbose debug logs to make it easier to debug failing load
97 attempts.
98 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
99 so return an error if requested face index is > 0.
100 Do not do further attempt to load fonts if a previous attempt has
101 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
102 file format has been recognized but no fonts found in the file.
103
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001042007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
105
106 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
107 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
108 the compiler warnings against unused arguments.
109 (FT_ATSFontGetFileReference): Ditto.
110 (FT_GetFile_From_Mac_ATS_Name): Ditto.
111 (FT_New_Face_From_FSSpec): Ditto.
112 (lookup_lwfn_by_fond): Fix wrong comment.
113 Replace `const StringPtr' by more appropriate type
114 `ConstStr255Param'.
115 FSRefMakePathPath always returns UTF8 POSIX pathname in
116 Mach-O, thus HFS pathname support is dropped.
117 (count_faces): Remove HLock and HUnlock which is not
118 required on Mac OS X anymore.
119 (FT_New_Face_From_SFNT): Ditto.
120 (FT_New_Face_From_FOND): Ditto.
121 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
122 except of HFS pathname support and HLock/HUnlock.
123 They are required on classic CFM environment.
124
1252007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +0000126
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000127 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
128 assertion.
129 (ps_parser_to_bytes): Fix error message.
130
Werner Lembergbb2510d2007-06-18 17:07:49 +0000131 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000132 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
133 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +0000134 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +0000135 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000136
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001372007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000138
Werner Lembergf48aec72007-06-18 07:07:55 +0000139 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
140 logic.
141 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
142 correctly.
143 (ps_parser_load_field_table): Use `fields->array_max' instead of
144 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
145
Werner Lemberg95104a42007-06-18 07:33:10 +0000146 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
147 2007-06-06.
148
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001492007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000150
151 * src/tools/ftrandom.c (font_size): New global variable.
152 (TestFace): Use it.
153 (main): Handle new option `--size' to set `font_size'.
154 (Usage): Updated.
155
Werner Lembergbe183eb2007-06-17 11:27:17 +0000156 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
157 invalid font.
158 (FNT_Load_Glyph): Protect against invalid bitmap width.
159
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001602007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000161
Werner Lemberge12ed562007-06-17 05:31:23 +0000162 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
163 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000164
Werner Lemberge12ed562007-06-17 05:31:23 +0000165 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
166 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000167
Werner Lemberge12ed562007-06-17 05:31:23 +0000168 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
169 and `zp2'.
170 (Ins_IP): Check argument ranges to reject bogus operations properly.
171 (IUP_WorkerRec): Add `max_points' member.
172 (_iup_worker_interpolate): Check argument ranges.
173 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000174
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001752007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000176
177 * src/winfonts/winfnt.h: Add necessary structures for PE resource
178 parsing.
179 (WinPE32_HeaderRec): New structure.
180 (WinPE32_SectionRec): New structure.
181 (WinPE_RsrcDirRec): New structure.
182 (WinPE_RsrcDirEntryRec): New structure.
183 (WinPE_RsrcDataEntryRec): New structure.
184 (FNT_FontRec): Remove unused `size_shift' field.
185
186 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
187 loading bitmap .fon files in PE format.
188
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001892007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000190
191 * builds/win32/ftdebug.c: Unify debug level handling with other
192 platforms.
193
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001942007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000195
196 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
197 console as well as to the debugger.
198
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001992007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000200
201 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
202 cover all ranges which could possibly be handled by the aflatin
203 module (since the default fallback for unknown ranges is now the
204 afcjk module). It might be necessary to fine-tune this further by
205 splitting off modules for Greek, Cyrillic, or other blocks.
206
David Turnerb7920172007-06-11 05:37:35 +00002072007-06-11 David Turner <david@freetype.org>
208
Werner Lemberg49e18b82007-06-11 21:15:09 +0000209 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
210 incorrect segment linking computation. This was the root cause of
211 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000212
213
Werner Lemberg49e18b82007-06-11 21:15:09 +0000214 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
215 to improve the Latin auto-hinter. Note that the new code is
216 disabled by default since it is not stabilized yet.
217
218 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
219 (disabled currently).
220
221 * src/autofit/afhints.c: Remove dead code.
222 (af_axis_hints_new_edge): Add argument to handle segment directions.
223 (af_edge_flags_to_string): New function.
224 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
225 option flags.
226 (af_glyph_hints_reload): Add argument to handle inflections.
227 Simplify.
228 (af_direction_compute): Fine tuning.
229 (af_glyph_hints_align_edge_points): Fix logic.
230 (af_glyph_hints_align_strong_points): Do linear search for small
231 edge counts.
232 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
233 (af_iup_shift): Handle zero `delta'.
234
235 * src/autofit/afhints.h: Updated.
236 (AF_SORT_SEGMENTS): New macro (disabled).
237 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
238
239 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
240 argument to pass option flags for handling scripts.
241 * src/autofit/afglobal.h: Updated.
242
243 * src/autofit/afcjk.c: Updated.
244 * src/autofit/aflatin.c: Updated.
245 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
246
247 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
248 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
249 Don't set `edge->dir'
250 (af_latin_hint_edges): Add more logging.
251
252 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000253
Werner Lembergf6c120f2007-06-11 04:55:58 +00002542007-06-11 Werner Lemberg <wl@gnu.org>
255
Werner Lembergcf7b7642007-06-11 04:58:01 +0000256 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000257
David Turner84c6f882007-06-10 20:51:04 +00002582007-06-10 David Turner <david@freetype.org>
259
Werner Lembergf6c120f2007-06-11 04:55:58 +0000260 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
261 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000262
Werner Lembergf6c120f2007-06-11 04:55:58 +0000263 * include/freetype/config/ftoption.h: Clarify documentation
264 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000265
Werner Lembergf6c120f2007-06-11 04:55:58 +0000266
267 Add new `FT_Face_CheckTrueTypePatents' API.
268
269 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
270 declaration.
271
272 * include/freetype/internal/services/svttglyf.h,
273 src/base/ftpatent.c: New files.
274
275 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
276 New macro.
277
278 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
279 `ttpload.h'.
280 (tt_service_truetype_glyf): New service structure.
281 (tt_services): Register it.
282
283 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
284 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000285
Werner Lemberg33db39e2007-06-08 06:30:29 +00002862007-06-08 Werner Lemberg <wl@gnu.org>
287
David Turner84c6f882007-06-10 20:51:04 +0000288 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000289 Fonts without a cmap must be handled correctly by FreeType (anything
290 else would be a bug).
291
292
293 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
294 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
295
Werner Lemberg88ab6382007-06-07 05:01:56 +00002962007-06-07 Werner Lemberg <wl@gnu.org>
297
298 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
299 tt_sbit_decoder_load_image): Protect against integer overflows.
300
301
302 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
303 for `x_control' and `y_control'.
304
Werner Lemberg2a2dca62007-06-06 04:39:37 +00003052007-06-06 Werner Lemberg <wl@gnu.org>
306
307 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
308
Werner Lemberga8d65492007-06-06 04:47:49 +0000309
310 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
311 FreeType error.
312
Werner Lemberg470210b2007-06-06 10:05:49 +0000313
314 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
315 `font_count'.
316
317
318 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
319
320
321 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
322 `FT_Error'.
323 Check `fd_index'.
324 (cff_slot_load): Updated.
325 * src/cff/cffgload.h: Updated.
326
Werner Lemberg6c054752007-06-05 05:27:54 +00003272007-06-05 Werner Lemberg <wl@gnu.org>
328
329 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
330 (pfr_glyph_load_simple): Convert assertion into normal FreeType
331 error.
332 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000333 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
334 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000335
336 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
337
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000338
Werner Lemberg470210b2007-06-06 10:05:49 +0000339 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000340
Werner Lemberge5c14d92007-06-05 20:50:37 +0000341
342 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
343 in case of parsing error.
344 (ps_parser_load_field): Updated.
345
346 * src/type1/t1load.c (parse_font_matrix): Updated.
347
Werner Lembergad18b362007-06-04 07:04:05 +00003482007-06-04 Werner Lemberg <wl@gnu.org>
349
350 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
351
352 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
353
Werner Lemberg3d507fe2007-06-03 16:54:55 +00003542007-06-03 Werner Lemberg <wl@gnu.org>
355
Werner Lemberg99a320b2007-06-03 19:21:26 +0000356 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
357 George Williams (with some modifications).
358
3592007-06-03 Werner Lemberg <wl@gnu.org>
360
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000361 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
362 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
363 face == NULL. Suggested by Graham Asher.
364
Werner Lembergce280a22007-06-03 05:58:30 +00003652007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
366
367 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
368
Werner Lemberg5b591e42007-06-01 22:16:43 +00003692007-06-02 Werner Lemberg <wl@gnu.org>
370
371 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
372 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
373
374 * src/bdf/bdflib.c (bdf_load_font): Use them.
375
376 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
377
Werner Lembergb9933f42007-06-01 21:27:12 +00003782007-06-01 Werner Lemberg <wl@gnu.org>
379
380 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
381 (FTC_CMapCache_Lookup): Remove unused code.
382
Werner Lembergc793d902007-06-01 20:51:11 +00003832007-06-01 Sean McBride <sean@rogue-research.com>
384
385 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
386 unused.
387
Werner Lembergbebc7b12007-06-01 06:32:30 +00003882007-06-01 Werner Lemberg <wl@gnu.org>
389
390 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
391 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000392 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000393
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000394 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
395 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
396
Werner Lembergba03af62007-05-30 13:57:02 +00003972007-05-30 Werner Lemberg <wl@gnu.org>
398
399 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
400 against too small binary data strings.
401
402 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
403
David Turnerf0cd69c2007-05-28 15:42:09 +00004042007-05-28 David Turner <david@freetype.org>
405
Werner Lemberg99e0c182007-05-29 07:00:23 +0000406 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
407 transformation. This significantly reduces the loading time of CFF
408 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000409
Werner Lemberg99e0c182007-05-29 07:00:23 +0000410 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000411
Werner Lemberg99e0c182007-05-29 07:00:23 +0000412 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
413 hinting script to CJK, since it works well with more scripts than
414 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
415 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000416
Werner Lemberg1c8980e2007-05-25 07:11:12 +00004172007-05-25 Werner Lemberg <wl@gnu.org>
418
419 * docs/CHANGES: Updated.
420
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00004212007-05-24 Werner Lemberg <wl@gnu.org>
422
423 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
424 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
425
4262007-05-24 Graham Asher <graham.asher@btinternet.com>
427
428 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
429 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
430
David Turner0d0365e2007-05-22 09:53:44 +00004312007-05-22 David Turner <david@freetype.org>
432
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000433 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
434 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000435
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000436
437 Avoid heap blowup with very large .Z font files. This fixes
438 Savannah bug #19910.
439
440 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
441 `in_limit', `pad', `pad_bits', and `in_buff' members.
442 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
443 `buf_total' members.
444
445 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
446 only one argument.
447 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000448
4492007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000450
451 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
452 (ps_dimension_set_mask_bits): Remove `const'.
453
David Turner0d0365e2007-05-22 09:53:44 +00004542007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000455
456 * src/sfnt/ttmtx.c (tt_face_get_metrics)
457 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
458
Werner Lembergb826fa72007-05-19 07:18:48 +00004592007-05-19 Derek Clegg <dclegg@apple.com>
460
461 Savannah patch #5929.
462
463 * include/freetype/tttables.h, src/base/ftobjcs.c
464 (FT_Get_CMap_Format): New function.
465
466 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
467 `format' member.
468 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
469 cmap_info->format.
470
Werner Lemberg6f99c882007-05-19 07:01:49 +00004712007-05-19 Werner Lemberg <wl@gnu.org>
472
473 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
474 before handling subglyphs so that it can be reinitialized each time.
475 This fixes Savannah bug #19859.
476
Werner Lemberg95bc9d32007-05-16 15:19:42 +00004772007-05-16 Werner Lemberg <wl@gnu.org>
478
479 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
480 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
481 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
482 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
483 tt_face_get_metrics): Fix type-punning issues.
484
David Turner0a24bd22007-05-15 10:54:10 +00004852007-05-15 David Turner <david@freetype.org>
486
487 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000488 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
489 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000490 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000491 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000492
Werner Lemberg607dec72007-05-15 06:49:37 +00004932007-05-15 Graham Asher <graham.asher@btinternet.com>
494
495 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
496 variable.
497 * src/autofit/afloader.c (af_loader_load_g): Ditto.
498
499 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
500 (open_face_from_buffer): Initialize `stream'.
501 (FT_Request_Metrics): Remove unused variable.
502 Remove redundant `break' statements.
503 (FT_Get_Track_Kerning): Remove unused variable.
504
505 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
506 afm_parse_kern_data): Remove redundant
507 `break' statements.
508 (afm_parser_parse): Ditto.
509 Don't use uninitialized variables.
510
511 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
512 Use `|' operator instead of `^' to set it.
513 Update all users.
514
515 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
516 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
517
518 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
519 comparison.
520 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
521 (TT_Load_Glyph): Remove unused variable.
522
Werner Lemberg8d463a52007-05-13 16:01:55 +00005232007-05-13 Derek Clegg <dclegg@apple.com>
524
525 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
526 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
527
David Turner711cf842007-05-11 14:36:24 +00005282007-05-11 David Turner <david@freetype.org>
529
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000530 * src/cache/ftbasic.c, include/freetype/ftcache.h
531 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
532 functions that allow us to look up glyphs using an FTC_Scaler object
533 to specify the size, making it possible to use fractional pixel
534 sizes.
535
536 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
537 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000538
Werner Lemberg94be20e2007-05-09 20:02:55 +00005392007-05-09 Graham Asher <graham.asher@btinternet.com>
540
541 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
542 (af_latin_metrics_scale_dim): Fix compiler warnings.
543
Werner Lemberg41271032007-05-06 04:51:48 +00005442007-05-06 Werner Lemberg <wl@gnu.org>
545
546 * builds/win32/visualce/freetype.sln: Removed, as requested by
547 Vincent.
548
Werner Lembergdf49e692007-05-04 06:30:05 +00005492007-05-04 Vincent RICHOMME <richom.v@free.fr>
550
551 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
552 PC targets.
553
554 * docs/CHANGES: Document them.
555
5562007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000557
558 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
559 mmap (which might happen on some RTOS). From Savannah patch #5909.
560
Werner Lemberg106eaf12007-05-03 07:07:47 +00005612007-05-03 Werner Lemberg <wl@gnu.org>
562
563 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
564 * include/freetype/freetype.h (FT_Set_Char_Size): Update
565 documentation.
566
Werner Lemberg1b5267d2007-04-28 21:06:15 +00005672007-04-28 Victor Stinner <victor.stinner@inl.fr>
568
569 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
570 `cmap'.
571
Werner Lembergcc712a22007-04-27 17:16:50 +00005722007-04-27 Werner Lemberg <wl@gnu.org>
573
574 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
575 number of points in contours. Problem reported by Victor Stinner
576 <victor.stinner@haypocalc.com>.
577 (TT_Process_Simple_Glyph): Synchronize variable types.
578
Werner Lemberg45bb18f2007-04-26 06:26:35 +00005792007-04-26 Werner Lemberg <wl@gnu.org>
580
581 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
582 zero in case of error. This fixes Savannah bug #19689.
583
David Turnera8b45e62007-05-11 14:10:30 +00005842007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
585
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000586 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
587 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000588
Werner Lembergfcc1f472007-04-10 11:51:50 +00005892007-04-10 Martin Horak <horakm@centrum.cz>
590
591 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
592 Ignore `hhea' table. This fixes Savannah bug #19261.
593
Werner Lemberg14bf82e2007-04-10 04:09:49 +00005942007-04-09 Werner Lemberg <wl@gnu.org>
595
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000596
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000597 * Version 2.3.4 released.
598 =========================
599
600
601 Tag sources with `VER-2-3-4'.
602
603 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
604 version number to 2.3.4.
605
606 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
607 builds/win32/visualc/freetype.dsp,
608 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
609
610 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
611
612 * builds/unix/configure.raw (version_info): Set to 9:15:3.
613
Werner Lembergf4a52a62007-04-09 08:40:11 +00006142007-04-09 Martin Horak <horakm@centrum.cz>
615
616 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
617 memory stream to avoid a crash with the incremental memory
618 interface (Savannah bug #19260).
619
David Turner1dcb4442007-04-06 08:19:04 +00006202007-04-06 David Turner <david@freetype.org>
621
Werner Lembergc81cf612007-04-06 09:28:23 +0000622 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
623 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000624
Werner Lemberg9f83e052007-04-05 02:28:23 +00006252007-04-04 Werner Lemberg <wl@gnu.org>
626
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000627
Werner Lemberg9f83e052007-04-05 02:28:23 +0000628 * Version 2.3.3 released.
629 =========================
630
631
632 Tag sources with `VER-2-3-3'.
633
634 * docs/CHANGES: Mention CVE-2007-1351.
635
David Turner7338ec22007-04-03 14:30:34 +00006362007-04-03 David Turner <david@freetype.org>
637
638 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000639 if one of the resolution values is 0, treat it as if it were the
640 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000641
David Turnere6472c12007-04-02 13:13:54 +00006422007-04-02 David Turner <david@freetype.org>
643
Werner Lemberg94f12272007-04-03 07:19:53 +0000644 Add special code to detect `extra-light' fonts and do not snap their
645 stem widths too much to avoid bizarre hinting effects.
646
647 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
648 `extra_light' members.
649
650 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
651 them.
652 (af_latin_metrics_scale_dim): Set `extra_light'.
653 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000654
David Turner3f539692007-03-28 14:53:40 +00006552007-03-28 David Turner <david@freetype.org>
656
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000657 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000658 padding.
659
Werner Lemberga08b2172007-03-28 07:17:17 +00006602007-03-28 Werner Lemberg <wl@gnu.org>
661
662 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
663 gracefully.
664 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000665 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000666 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
667 number of code points in Unicode.
668
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000669 * builds/win32/visualc/index.html,
670 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000671 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000672 s/232/233/.
673
674 * docs/CHANGES: Mention ftdiff.
675
David Turner3b242d32007-03-26 12:03:04 +00006762007-03-26 David Turner <david@freetype.org>
677
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000678 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
679 corresponding code.
680 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000681
Werner Lemberga08b2172007-03-28 07:17:17 +0000682 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000683 computations in order to ignore single-point contours. These are
684 never rasterized and correspond in certain fonts to mark-attach
685 points that are very far from the glyph's real outline, ruining the
686 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000687
Werner Lemberga08b2172007-03-28 07:17:17 +0000688 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000689 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000690 Otherwise code that uses them will most certainly ruin the fixed
691 advance property.
David Turner23553d62007-03-26 13:37:17 +0000692
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000693 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
694 documentation and bump version number to 2.3.3.
695
696 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
697
698 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000699
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00007002007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
701
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000702 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
703 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000704 * builds/vms/ftconfig.h: Ditto.
705 * include/freetype/config/ftconfig.h: Ditto.
706
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00007072007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
708
Werner Lemberg14ffe092007-03-22 06:12:43 +0000709 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
710 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000711 proposed by Sean McBride:
712 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
713
7142007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
715
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000716 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
717 setjmp, proposed by Sean McBride:
718 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
719
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00007202007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
721
Werner Lembergc9f6c662007-03-21 13:30:14 +0000722 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
723 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
724 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000725
David Turner74c34eb2007-03-18 07:19:31 +00007262007-03-18 David Turner <david@freetype.org>
727
Werner Lembergc9f6c662007-03-21 13:30:14 +0000728 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
729 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000730
Werner Lembergc9f6c662007-03-21 13:30:14 +0000731 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000732
David Turner89020d92007-03-17 17:48:57 +00007332007-03-17 David Turner <david@freetype.org>
734
Werner Lembergc9f6c662007-03-21 13:30:14 +0000735 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
736 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000737
Werner Lemberg25d592a2007-03-09 07:59:35 +00007382007-03-09 Werner Lemberg <wl@gnu.org>
739
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000740
Werner Lemberg25d592a2007-03-09 07:59:35 +0000741 * Version 2.3.2 released.
742 =========================
743
744
745 Tag sources with `VER-2-3-2'.
746
747 * builds/win32/visualc/index.html,
748 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000749 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000750 s/231/232/.
751
David Turner3a51afa2007-03-08 10:50:38 +00007522007-03-08 David Turner <david@freetype.org>
753
Werner Lemberg25d592a2007-03-09 07:59:35 +0000754 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000755
Werner Lemberg25d592a2007-03-09 07:59:35 +0000756 * builds/unix/configure.raw (version_info): Set to 9:13:3.
757
758 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
759
760 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000761
Werner Lemberg1e259de2007-03-08 15:39:21 +0000762 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
763 function to work properly, over-writing user-provided buffers in
764 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000765
David Turner121cad52007-03-08 16:43:50 +0000766
Werner Lemberg3d92f082007-03-06 11:59:24 +00007672007-03-05 Werner Lemberg <wl@gnu.org>
768
769 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
770 macro for `strstr'.
771
772 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
773 `trick_names', as suggested by Ivan Nincic.
774
David Turner085bc6e2007-03-05 17:40:03 +00007752007-03-05 David Turner <david@freetype.org>
776
Werner Lembergd112cf02007-03-06 12:06:56 +0000777 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
778 case FT_Init_FreeType fails for some reason. Problem reported by
779 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000780
Werner Lembergd112cf02007-03-06 12:06:56 +0000781 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
782 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
783 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
784 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000785
Werner Lembergd112cf02007-03-06 12:06:56 +0000786 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
787 signed values, not unsigned ones. Problem reported by Johannes
788 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000789
David Turner601aefe2007-02-21 16:47:49 +00007902007-02-21 David Turner <david@freetype.org>
791
Werner Lembergde5e6862007-02-25 21:06:43 +0000792 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
793 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000794
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00007952007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
796
797 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
798 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
799 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
800
Werner Lemberga0915172007-02-16 08:12:50 +00008012007-02-16 Werner Lemberg <wl@gnu.org>
802
803 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
804 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
805
David Turner2c4500e2007-02-14 15:08:47 +00008062007-02-14 David Turner <david@freetype.org>
807
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000808 It seems that the following changes fix most of the known
809 interpreter problems with my fonts, but more testing is needed,
810 though.
811
812 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
813 (TT_MulFix14): Rewrite.
814 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
815 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000816
Werner Lembergc6a14082007-02-12 22:08:15 +00008172007-02-12 Werner Lemberg <wl@gnu.org>
818
819 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
820 warnings.
821
822 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
823 (bdf_interpret_style): Ditto.
824
David Turnerc0f9c4a2007-02-12 14:55:03 +00008252007-02-12 David Turner <david@freetype.org>
826
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000827 Simplify projection and dual-projection code interface.
828
Werner Lemberg406d25f2007-02-12 22:01:18 +0000829 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
830 FT_Vector' as argument type.
831 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
832 Updated.
833 (CUR_fast_project, CUR_fast_dualproj): New macros.
834 (Project, Dual_Project, Project_x, Project_y): Updated.
835 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
836 macros.
837
838
839 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
840 adjustments for the non-light auto-hinted modes. Gets rid of
841 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000842
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000843 * src/autofit/aflatin.c (af_latin_hints_link_segments,
844 af_latin_hints_compute_edges): Slight optimization of the segment
845 linker and better handling of serif segments to get rid of broken
846 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000847
David Turnerc0f9c4a2007-02-12 14:55:03 +0000848
Werner Lemberg442bfb82007-02-12 21:44:10 +0000849 Introduce new string functions and the corresponding macros to get
850 rid of various uses of strcpy and other `evil' functions, as well as
851 to simplify a few things.
852
853 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
854 ft_mem_strcpyn): New declarations.
855 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
856 macros.
857 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
858 functions.
859
860 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
861 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
862 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
863 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
864 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
865 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
866 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
867 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000868
Werner Lemberg406d25f2007-02-12 22:01:18 +0000869 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
870
Werner Lemberg582067d2007-02-11 15:03:05 +00008712007-02-11 Werner Lemberg <wl@gnu.org>
872
873 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
874 non-spacing glyphs.
875
Werner Lemberg8f474532007-02-07 08:31:01 +00008762007-02-07 Tom Parker <palfrey@tevp.net>
877
878 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
879 pointer.
880
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008812007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
882
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000883 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
884 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000885 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000886 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
887 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
888 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
889 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000890
891 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
892 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000893 * builds/mac/ftmac.c: Ditto.
894
8952007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
896
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000897 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000898 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000899 #include <ftmac.c>.
900
9012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
902
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000903 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
904 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
905 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
906 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
907 FT_GetFilePath_From_Mac_ATS_Name.
908 * builds/mac/ftmac.c: Ditto.
909
9102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
911
Werner Lembergdcbb7082007-02-08 08:54:09 +0000912 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000913 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
914 for passing to FT_New_Face_From_FSSpec.
915
9162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
917
Werner Lembergdcbb7082007-02-08 08:54:09 +0000918 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000919 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000920
921 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
922 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000923 * builds/mac/ftmac.c (OS_INLINE): Ditto.
924
Werner Lemberg313d7772007-02-01 08:10:45 +00009252007-02-01 Werner Lemberg <wl@gnu.org>
926
927 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
928 Explain why applications shouldn't use it. Found by Alexei.
929
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009302007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000931
932 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
933 message.
934
935 * src/gxvalid/gxvmort1.c
936 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
937 message.
938
Werner Lemberg53935932007-01-31 08:53:02 +00009392007-01-31 Werner Lemberg <wl@gnu.org>
940
941
942 * Version 2.3.1 released.
943 =========================
944
945
946 Tag sources with `VER-2-3-1-FINAL'.
947
948 * builds/win32/visualc/freetype.dsp,
949 builds/win32/visualc/freetype.vcproj: s/230/231/.
950 * builds/win32/visualc/index.html: s/221/231/.
951
952 * vms_make.com: Add `ftgasp'.
953
David Turnera7ee6082007-01-30 10:33:53 +00009542007-01-30 David Turner <david@freetype.org>
955
Werner Lemberg53935932007-01-31 08:53:02 +0000956 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000957
Werner Lemberg53935932007-01-31 08:53:02 +0000958 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000959
Werner Lemberg25d592a2007-03-09 07:59:35 +0000960 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000961 s/2.3.0/2.3.1/.
962
963 * builds/unix/configure.raw (version_info): Set to 9:12:3.
964
965
966 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
967 (af_loader_load_g): Disable the warper (i.e., the light hinting
968 improvements) to make a 2.3.1 bugfix release before introducing a
969 new feature. This should give us more time to tune and improve the
970 warper for the next release.
971
972 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000973
David Turnerd91eebd2007-01-26 15:05:41 +00009742007-01-25 David Turner <david@freetype.org>
975
Werner Lembergbf241762007-01-26 16:08:49 +0000976 For light auto-hinting, improve glyph advance widths and resurrect
977 normal/full hinting to its normal quality.
978
979 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
980 and `xmax_delta'.
981 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
982 and `xmax_delta'.
983
984 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
985 preprocessor conditional with if-clause, handling both light and
986 normal mode.
987
988 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
989 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000990
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00009912007-01-25 Werner Lemberg <wl@gnu.org>
992
993 * docs/release: Updated -- Savannah uses a new uploading scheme.
994
David Turnera42567b2007-01-25 12:23:37 +00009952007-01-25 David Turner <david@freetype.org>
996
Werner Lembergd7855662007-01-25 13:53:56 +0000997 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000998
Werner Lembergd7855662007-01-25 13:53:56 +0000999 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1000 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
1001 functions.
David Turnera42567b2007-01-25 12:23:37 +00001002
Werner Lembergd7855662007-01-25 13:53:56 +00001003 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00001004
Werner Lembergb1be9e82007-01-25 11:50:00 +000010052007-01-25 Werner Lemberg <wl@gnu.org>
1006
1007 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00001008 correctly in a sanity check. Since this function is only used to
1009 load local and global functions, any charstring that called the last
1010 local/global function would fail otherwise. This fixes Savannah bug
1011 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00001012
1013 * docs/CHANGES: Document it.
1014
David Turnerb6de8d12007-01-23 15:51:50 +000010152007-01-23 David Turner <david@freetype.org>
1016
Werner Lembergb1be9e82007-01-25 11:50:00 +00001017 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1018 prevented compilation when disabling both the unpatented and the
1019 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00001020
Werner Lembergb1be9e82007-01-25 11:50:00 +00001021
1022 Fix and enable the warper to improve `light' hinting mode. This is
1023 not necessarily a final version, but it seems to work well.
1024
1025 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1026 Disable code.
1027 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1028 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1029
1030 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1031 (af_warper_compute_line_best): Fix array size of `scores'.
1032 (af_warper_compute): Better handling of border cases.
1033 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1034 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00001035
Werner Lemberg011d1112007-01-21 09:36:00 +000010362007-01-21 Werner Lemberg <wl@gnu.org>
1037
Werner Lemberg42b63b22007-01-21 21:01:33 +00001038 * ChangeLog: Split off older entries into...
1039 * ChangeLog.22: This new file.
1040
10412007-01-21 Werner Lemberg <wl@gnu.org>
1042
Werner Lemberg555258f2007-01-21 09:46:37 +00001043 * docs/CHANGES: Document SHZ fix.
1044
10452007-01-21 George Williams <gww@silcom.com>
1046
1047 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1048 points.
1049
10502007-01-21 Werner Lemberg <wl@gnu.org>
1051
Werner Lemberg011d1112007-01-21 09:36:00 +00001052 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1053 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1054
Werner Lemberg87a5a432007-01-17 12:44:39 +000010552007-01-17 Werner Lemberg <wl@gnu.org>
1056
Werner Lembergb8003292007-01-17 12:56:25 +00001057
1058 * Version 2.3.0 released.
1059 =========================
1060
1061
1062 Tag sources with `VER-2-3-0-FINAL'.
1063
10642007-01-17 Werner Lemberg <wl@gnu.org>
1065
Werner Lemberg87a5a432007-01-17 12:44:39 +00001066 * docs/release: Updated.
1067
David Turner22122722007-01-16 20:06:44 +000010682007-01-16 David Turner <david@freetype.org>
1069
Werner Lemberg87a5a432007-01-17 12:44:39 +00001070 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1071 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1072 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1073 warnings.
David Turner22122722007-01-16 20:06:44 +00001074
Werner Lemberg267e1d72007-01-15 07:48:09 +000010752007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1076
1077 * builds/amiga/makefile, builds/amiga/makefile.os4,
1078 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1079
1080 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1081
Werner Lemberg8c4120d2007-01-15 06:42:40 +000010822007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1083
1084 Fix various compiler warnings.
1085
1086 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1087 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1088 s/index/strike_index/.
1089 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1090
1091 * src/gxvalid/gxvmorx5.c
1092 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1093
1094 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1095 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1096 uninitialized variables.
1097
Werner Lemberg6164a9d2007-01-13 23:01:36 +000010982007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1099
1100 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1101
Werner Lemberg281c1482007-01-13 22:50:51 +000011022007-01-13 Werner Lemberg <wl@gnu.org>
1103
1104 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1105 versions up to 0x3FF without complaining.
1106
Werner Lembergac250b22007-01-13 14:01:36 +000011072007-01-13 Derek Clegg <dclegg@apple.com>
1108
1109 Add FT_Get_PS_Font_Info interface to CFF driver.
1110
1111 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1112 (CFF_FontRec): Add `font_info' field.
1113
1114 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1115 (cff_font_done): Free font->font_info if necessary.
1116
1117 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1118 (cff_service_ps_info): Register cff_ps_get_font_info.
1119
Werner Lemberg23df31a2007-01-13 08:45:00 +000011202007-01-13 Werner Lemberg <wl@gnu.org>
1121
1122 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1123 with C++ compiler.
1124
1125 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1126 af_glyph_hints_dump_edges): Ditto.
1127
1128 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1129 `modules.cfg').
1130
1131 * src/sfnt/ttsbit0.h: Remove.
1132
1133 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1134
Werner Lemberg27cf9de2007-01-13 07:34:23 +000011352007-01-12 David Turner <david@freetype.org>
1136
1137 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1138 bug in the bitmap emboldener if the pitch of the source bitmap is
1139 much larger than its width.
1140
1141 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1142 compilation warning.
1143
Werner Lemberg6d96d312007-01-12 10:30:19 +000011442007-01-12 Werner Lemberg <wl@gnu.org>
1145
1146 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1147 `automake' CVS module from sources.redhat.com.
1148
Werner Lemberg17432b52007-01-12 09:28:44 +000011492007-01-11 Werner Lemberg <wl@gnu.org>
1150
1151 * src/type1/t1load.c (is_space): Removed.
1152 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1153 (parse_charstrings): Use IS_PS_TOKEN.
1154
1155
1156 * autogen.sh: Avoid bash specific syntax.
1157
David Turner038ace22007-01-11 15:00:59 +000011582007-01-11 David Turner <david@freetype.org>
1159
Werner Lemberg17432b52007-01-12 09:28:44 +00001160 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001161
Werner Lemberg17432b52007-01-12 09:28:44 +00001162 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001163
Werner Lemberg17432b52007-01-12 09:28:44 +00001164 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1165 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001166 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001167
Werner Lemberg17432b52007-01-12 09:28:44 +00001168 * autogen.sh: Small fix to get it working on Mac OS X properly:
1169 The issue is that GNU libtool is called `glibtool' on this platform,
1170 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001171
David Turner2628ea92007-01-10 13:15:56 +000011722007-01-10 David Turner <david@freetype.org>
1173
Werner Lemberg17432b52007-01-12 09:28:44 +00001174 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1175 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001176
Werner Lemberg17432b52007-01-12 09:28:44 +00001177 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1178 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1179 version number to 2.3.0.
1180
1181 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1182 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001183
1184 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001185 include/freetype/ftlcdfil.h: Update reference documentation with
1186 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001187
Werner Lemberg17432b52007-01-12 09:28:44 +00001188 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1189 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001190
Werner Lembergbf02d392007-01-10 07:07:37 +000011912007-01-10 Derek Clegg <dclegg@apple.com>
1192
1193 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1194 values.
1195
David Turnerf48b60e2007-01-08 15:15:32 +000011962007-01-08 David Turner <david@freetype.org>
1197
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001198 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001199
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001200 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1201 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001202 corresponding to a given character pixel size.
1203
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001204 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1205 `gasp' table, in order to avoid potential problems with later
1206 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001207
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001208 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1209 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001210
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001211 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1212 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1213 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1214 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001215
Werner Lemberge6b6f372007-01-07 00:06:47 +000012162007-01-07 Werner Lemberg <wl@gnu.org>
1217
Werner Lembergb8004d22007-01-07 09:13:38 +00001218 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1219 Type 11 fonts.
1220 Scan for `/sfnts' token.
1221
12222007-01-07 Werner Lemberg <wl@gnu.org>
1223
1224 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001225
Werner Lembergbe5f7972007-01-06 07:51:48 +000012262007-01-06 Werner Lemberg <wl@gnu.org>
1227
1228 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1229 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1230
David Turnera8cf42b2007-01-04 16:46:46 +000012312007-01-04 David Turner <david@freetype.org>
1232
Werner Lembergf6294392007-01-06 07:47:45 +00001233 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1234 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001235
Werner Lembergf6294392007-01-06 07:47:45 +00001236
1237 Do not allocate interpreter-specific tables in memory if we are not
1238 going to load glyphs with the bytecode interpreter anyway.
1239
1240 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1241 only if glyph is hinted.
1242 Updated.
1243 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1244 and `cvs_ready'.
1245 Add `tt_size_ready_bytecode' declaration.
1246 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1247 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1248 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1249 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1250 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001251
David Turner91a34022007-01-05 14:47:08 +00001252
Werner Lembergf6294392007-01-06 07:47:45 +00001253 Don't extract the metrics table from the SFNT font file. Instead,
1254 reparse it on each glyph load. The runtime difference is not
1255 noticeable, and it can save a lot of heap memory when memory-mapped
1256 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001257
Werner Lembergf6294392007-01-06 07:47:45 +00001258 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1259 `horz_metrics_offset' and `vert_metrics_ofset'.
1260 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1261 Updated.
1262
1263
1264 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1265
1266
1267 Do not load the CFF index offsets into memory, since this wastes a
1268 *lot* of heap memory with large Asian CFF fonts. There is no
1269 significant performance loss.
1270
1271 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1272 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1273 `data_size'.
1274 (CFF_CharsetRec): Add field `num_glyphs'.
1275
1276 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1277 cff_charset_cid_to_gindex): New functions.
1278 (cff_new_index): Renamed to...
1279 (cff_index_init): This. Update all callers.
1280 Updated -- some code has been moved to `cff_index_load_offsets'.
1281 (cff_done_index): Renamed to...
1282 (cff_index_done): This. Update all callers.
1283 (cff_index_get_pointers, cff_index_access_element): Updated to use
1284 stream offsets.
1285 (cff_charset_compute_cids): Set `num_glyphs' field.
1286 (cff_encoding_load): Updated.
1287
1288 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001289
12902007-01-04 David Turner <david@freetype.org>
1291
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001292 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1293 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001294
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001295 * README.CVS: Add common problem description and solution
1296 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001297
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001298 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001299
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001300 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001301
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001302 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001303
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001304 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1305 (TWorker): This.
1306 Remove `count_table' and `memory'.
1307 Make `grays' a pointer.
1308 (TRaster): New structure.
1309 (count_table): New static array.
1310 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1311 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1312 ft_black_set_mode, ft_black_render): Updated.
1313 (ft_black_init): Don't initialize `count_table'.
1314 (ft_black_reset): Use the render pool. This saves about 6KB of
1315 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001316
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001317 * src/smooth/ftgrays.c (TRaster): Replaced with...
1318 (TWorker): This.
1319 Remove `memory'.
1320 (TRaster): New structure.
1321
1322 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1323 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1324 gray_render_span, gray_raster_render): Updated.
1325 (gray_raster_reset): Use the render pool. This saves about 6KB of
1326 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001327
David Turner8a6c44e2007-01-04 17:03:11 +00001328 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1329 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001330 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1331 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1332 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001333
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001334 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1335 Remove a typo that results in no hinting and a memory leak with some
1336 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001337
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001338 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001339 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001340 CFF_Faces in it. We need to close all faces before destroying the
1341 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001342
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000013432007-01-02 Werner Lemberg <wl@gnu.org>
1344
1345 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1346 Remove compiler warning.
1347
David Turner9207e002007-01-02 16:58:13 +000013482007-01-02 David Turner <david@freetype.org>
1349
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001350 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001351
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000013522006-12-31 Masatake YAMATO <jet@gyve.org>
1353
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001354 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1355 function.
1356 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001357 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001358 `gxv_kern_subtable_fmt0_pairs_validate'.
1359
David Turner115b4422006-12-22 11:37:05 +000013602006-12-22 David Turner <david@freetype.org>
1361
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001362 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1363 warnings.
David Turner115b4422006-12-22 11:37:05 +00001364
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001365 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1366 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001367
Werner Lemberg4755bf72006-12-16 08:58:44 +000013682006-12-16 Anders Kaseorg <anders@kaseorg.com>
1369
1370 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1371 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1372
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000013732006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1374
Werner Lemberg9b774e22007-01-16 06:11:27 +00001375 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001376 sync with the modification by Jens Claudius on 2006-08-22; cf.
1377 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 +00001378
13792006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1380
1381 * src/base/ftmac.c: Specialized for Mac OS X only.
1382 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1383 * builds/unix/configure.raw: Ditto. When explicit switches for
1384 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1385 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1386
13872006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1388
1389 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1390 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1391 instead of src/base/ftmac.c
1392 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1393 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1394 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1395 that cannot be built at present.
1396
13972006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1398
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001399 * src/base/ftobjs.c: Improvement of resource fork handler for
1400 POSIX, cf.
1401 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001402 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1403 format or .dfont, to simulate the face index number counted by ftmac.c.
1404 (IsMacResource): Return the number of scalable faces correctly.
1405
Werner Lembergec5b4502006-12-10 07:51:38 +000014062006-12-10 Werner Lemberg <wl@gnu.org>
1407
1408 * builds/toplevel.mk (version): Protect against `distclean' target.
1409
Werner Lembergb26b3142006-12-09 20:01:43 +000014102006-12-09 Werner Lemberg <wl@gnu.org>
1411
1412 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1413 or `type'.
1414
1415 * builds/freetype.mk (version): Extracted from freetype.h, using
1416 GNU make's built-in string functions.
1417 (refdoc): Use $(version) instead of static version number.
1418
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000014192006-12-08 Werner Lemberg <wl@gnu.org>
1420
1421 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1422
Werner Lemberg15c29502006-12-09 07:29:54 +000014232006-12-08 Vladimir Volovich <vvv@vsu.ru>
1424
1425 * src/tools/apinames (State): Remove final comma in structure -- xlc
1426 v5 under AIX 4.3 doesn't like this.
1427
David Turnerdbf3b432006-12-07 21:18:09 +000014282006-12-07 David Turner <david@freetype.org>
1429
Werner Lemberg256a3512006-12-08 06:49:33 +00001430 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1431 to the spacing of auto-fitted glyphs. This only impacts rare
1432 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001433
Werner Lemberg11171312006-12-03 09:43:40 +000014342006-12-03 Werner Lemberg <wl@gnu.org>
1435
1436 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1437
Werner Lemberg960ba592006-12-01 08:20:47 +000014382006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001439
Werner Lemberg960ba592006-12-01 08:20:47 +00001440 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1441 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1442 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001443
David Turner80658e52006-11-28 08:09:20 +00001444
Werner Lemberg960ba592006-12-01 08:20:47 +00001445 * include/freetype/ftxf86.h: Fix and extend comment so that it
1446 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001447
Werner Lemberg960ba592006-12-01 08:20:47 +00001448 * include/freetype/ftchapters.h: Add `font_format' section.
1449
1450
1451 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1452 to TOC in index page.
1453
14542006-11-28 David Turner <david@freetype.org>
1455
1456 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1457 trying to render into a zero-width/height bitmap, not an error code.
1458
1459 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1460
1461 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1462 ones instead.
1463
1464 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1465 variable.
David Turner80658e52006-11-28 08:09:20 +00001466
Werner Lemberg8636c292006-11-26 22:28:13 +000014672006-11-26 Pierre Hanser <hanser@club-internet.fr>
1468
1469 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1470
Werner Lemberg960ba592006-12-01 08:20:47 +000014712006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001472
Werner Lemberg960ba592006-12-01 08:20:47 +00001473 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1474 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1475 Add stubs to link the `ftgrid' test program when debugging is
1476 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001477
Werner Lemberg960ba592006-12-01 08:20:47 +000014782006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001479
1480 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001481 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1482
1483 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1484 Emit more sensible information.
1485
1486 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1487
1488 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1489 rounding of blue values.
1490 (af_latin_hints_compute_segments): Hint segment heights.
1491 (af_latin_hints_link_segments): Reduce `len_score' value.
1492 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1493 value and use `height' member for comparisons.
1494 (af_latin_hint_edges): Extend logging message.
1495 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001496
Werner Lemberg91959bf2006-11-22 10:36:55 +000014972006-11-22 Werner Lemberg <wl@gnu.org>
1498
1499 Fix Savannah bug #15553.
1500
1501 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1502 program after a change from mono to grayscaling (and vice versa).
1503 Use correct constant for comparison to get `exec->grayscale'.
1504
Werner Lemberg913a3652006-11-19 09:19:17 +000015052006-11-18 Werner Lemberg <wl@gnu.org>
1506
1507 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001508 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001509 This patch fixes Savannah bug #18301.
1510
1511 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1512 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1513 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1514 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1515 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1516 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1517 (FNT_Load_Glyph): Check validity of `glyph_index'.
1518
David Turner7bab6ae2006-11-13 11:25:06 +000015192006-11-13 David Turner <david@freetype.org>
1520
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001521 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1522 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001523
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001524 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1525 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1526 when building the library to change the default LCD filter to be
1527 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001528
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001529 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001530
David Turner8765c712006-11-10 16:49:42 +000015312006-11-10 David Turner <david@freetype.org>
1532
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001533 * src/smooth/ftsmooth.c: API change for the LCD
1534 filter. The FT_LcdFilter value is an enumeration describing which
1535 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1536 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1537 algorithm which produces strong color fringes for everything
1538 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001539
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001540 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1541 second parameter to an enum type.
1542
1543 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1544 (_ft_lcd_filter): Rename to...
1545 (_ft_lcd_filter_fir): This.
1546 Update parameters.
1547 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1548 (FT_Library_Set_LcdFilter): Update parameters.
1549 Handle new filter modes.
1550
1551 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1552 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1553 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1554 callback and update other fields.
1555
1556 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1557 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1558 Other minor improvements.
1559
1560 * src/autofit/aflatin.c: Various tiny improvements that drastically
1561 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1562 (af_latin_hints_compute_edges): Fix typo.
1563 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001564
David Turner4e9cc3c2006-11-09 16:31:52 +000015652006-11-09 David Turner <david@freetype.org>
1566
Werner Lemberg49c77a82006-11-09 21:51:57 +00001567 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1568 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001569
Werner Lemberg5e430892006-11-07 09:35:03 +000015702006-11-07 Zhe Su <james.su@gmail.com>
1571
1572 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1573 also.
1574
Werner Lemberg111b5ae2006-11-03 09:40:12 +000015752006-11-03 Werner Lemberg <wl@gnu.org>
1576
1577 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1578
David Turner40604742006-11-02 16:37:35 +000015792006-11-02 David Turner <david@freetype.org>
1580
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001581 Add a few tweaks to better handle serif fonts.
1582 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001583
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001584 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1585 segments that are less than 1.5 pixels high. This gets rid of
1586 *many* corner cases with serifs.
1587 (af_latin_align_linked_edge): Add logging message.
1588 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1589 Add logging messages.
1590 Handle AF_EDGE_FLAG flag specially.
1591
1592 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1593 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1594
1595 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1596 Update external declarations.
1597 (af_corner_orientation, af_corner_is_flat): Replaced by...
1598
1599 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1600 ft_corner_is_flat): These declarations.
1601
1602 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1603 Comment out. Replaced by...
1604
1605 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1606 These functions. Update all callers.
1607 (FT_Add64) [!FT_LONG64]: Simplify.
1608
1609 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1610 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1611 production of garbage by missing lots of segments.
1612
1613 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1614
1615 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1616 [AF_DEBUG]: Set _af_debug_hints.
1617
1618
1619 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1620 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1621 and ft_corner_orientation.
1622
1623
1624 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001625
Werner Lemberge88c5262006-10-24 05:46:26 +000016262006-10-24 Werner Lemberg <wl@gnu.org>
1627
1628 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1629
1630 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1631 as argument.
1632
David Turnera1861392006-10-23 16:00:59 +000016332006-10-23 Zhe Su <zsu@novell.com>
1634
Werner Lemberg715e96e2006-10-24 05:28:45 +00001635 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1636 better deal with broken Asian fonts with strange glyphs, having
1637 self-intersections and other peculiarities. The used algorithm is
1638 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001639
David Turnere140f142006-10-23 08:56:57 +000016402006-10-23 David Turner <david@freetype.org>
1641
Werner Lemberg715e96e2006-10-24 05:28:45 +00001642 Speed up the CFF font loader. With some large CFF fonts,
1643 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001644
Werner Lemberg715e96e2006-10-24 05:28:45 +00001645 * src/cff/cffload.c (cff_get_offset): Removed.
1646 (cff_new_index): Inline functionality of `cff_get_offset'.
1647 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1648 (cff_charset_done): Call `cff_charset_free_cids'.
1649 (cff_charset_load): Call `cff_charset_compute_cids'.
1650 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1651
1652 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1653 with FT_NEXT_XXX.
1654
1655
1656 Speed up the Postscript hinter, with more than 100% speed increase
1657 on my machine.
1658
1659 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1660 psh_corner_orientation): New functions.
1661 (psh_glyph_compute_inflections): Merge loops for efficiency.
1662 Use `psh_corner_orientation'.
1663 (psh_glyph_init): Use `psh_corner_is_flat'.
1664 (psh_hint_table_find_strong_point): Renamed to...
1665 (psh_hint_table_find_strong_points): This.
1666 Rewrite, adding argument to handle all points at once.
1667 Update all callers.
1668 (PSH_MAX_STRONG_INTERNAL): New macro.
1669 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001670
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000016712006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1672
1673 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001674 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001675
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000016762006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1677
1678 * docs/INSTALL.CROSS: New document file for cross-building.
1679
1680 * builds/unix/configure.raw: Preliminary cross-building support.
1681 Find native C compiler and pass it by CC_BUILD, and
1682 find suffix for native executable and pass it by EXEEXT_BUILD.
1683 Also suffix for target executable is passed by EXEEXT.
1684
Werner Lembergb9e6d692006-10-15 08:58:40 +00001685 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1686 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001687 CC_BUILD and EXEEXT_BUILD.
1688
Werner Lembergb9e6d692006-10-15 08:58:40 +00001689 * builds/exports.mk (APINAMES_EXE): Change the extension for
1690 apinames from the suffix for target (E) to that for building host
1691 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001692
Werner Lemberg82a07e92006-10-12 06:20:44 +000016932006-10-12 Werner Lemberg <wl@gnu.org>
1694
1695 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1696 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1697 which reference those files.
1698
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000016992006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1700
Werner Lembergb9e6d692006-10-15 08:58:40 +00001701 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1702 embedded in freetype2.pc and freetype-config. Use it to record
1703 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001704
1705 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1706
1707 * builds/unix/freetype-config.in: Ditto.
1708
Werner Lemberg28e17d92006-10-11 17:27:47 +000017092006-10-11 Werner Lemberg <wl@gnu.org>
1710
1711 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1712 development.
1713
Jens Claudius336d2292006-10-03 08:53:37 +000017142006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1715
1716 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1717 argument to ft_setjmp.
1718
1719 * include/freetype/internal/ftvalid.h: Add comment that
1720 ft_validator_run must not be used.
1721
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017222006-10-01 Werner Lemberg <wl@gnu.org>
1723
1724 * src/base/ftbase.c: Undo change from 2006-09-30.
1725
1726 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1727
17282006-09-30 David Turner <david@freetype.org>
1729
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001730 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1731 s/unpatented_hinting/ignore_unpatented_hinter/.
1732 Update all callers.
1733
1734 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1735 auto-hinting shall be used or not.
1736
1737 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001738
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017392006-09-30 Werner Lemberg <wl@gnu.org>
1740
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001741 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1742 in use).
1743
1744 * src/base/ftbase.c: Include `ftlcdfil.c'.
1745
Werner Lemberg9b15ea32006-09-29 18:22:11 +000017462006-09-29 Werner Lemberg <wl@gnu.org>
1747
1748 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1749 overlapping segments. Bug reported by Stefan Koch.
1750
David Turnerad830712006-09-27 16:20:59 +000017512006-09-28 David Turner <david@freetype.org>
1752
Werner Lemberg2c002e12006-09-29 21:31:53 +00001753 Fix a bug in the automatic unpatented hinting support which prevents
1754 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001755
Werner Lemberg2c002e12006-09-29 21:31:53 +00001756 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1757 s/force_autohint/unpatented_hinting/. Update all callers.
1758
1759 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1760
1761 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001762
David Turner8a317cf2006-09-27 07:52:48 +000017632006-09-27 David Turner <david@freetype.org>
1764
Werner Lemberg2c002e12006-09-29 21:31:53 +00001765 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001766
David Turner8a317cf2006-09-27 07:52:48 +00001767
David Turnere140f142006-10-23 08:56:57 +00001768 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001769 In a default build, the function `FT_Library_SetLcdFilter' returns
1770 `FT_Err_Unimplemented_Feature'; you need to #define
1771 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1772 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001773
Werner Lemberg2c002e12006-09-29 21:31:53 +00001774 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001775
Werner Lemberg2c002e12006-09-29 21:31:53 +00001776 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1777 typedef.
1778 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1779 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001780
Werner Lemberg2c002e12006-09-29 21:31:53 +00001781 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1782 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001783
Werner Lemberg2c002e12006-09-29 21:31:53 +00001784 Handle subpixel rendering.
1785 Simplify function.
1786 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1787 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1788
1789 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1790 pointing to <freetype/ftlcdfil.h>.
1791
1792 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1793 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1794
1795 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001796
Werner Lemberge20df4a2006-09-27 06:29:21 +000017972006-09-26 David Bustin
1798
1799 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1800 correctly. Reported as Savannah bug #17843.
1801
David Turner6f8c6222006-09-26 15:42:44 +000018022006-09-26 David Turner <david@freetype.org>
1803
Werner Lemberg110246c2006-09-26 21:55:44 +00001804 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1805 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1806 horizontal and vertical hinting for the purpose of debugging the
1807 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001808
Werner Lemberg110246c2006-09-26 21:55:44 +00001809 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1810 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001811
Werner Lemberg110246c2006-09-26 21:55:44 +00001812 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1813
1814 * include/freetype/config/ftoption.h, devel/ftoption.h
1815 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1816 we want to compile LCD-optimized rendering code (à la ClearType) or
1817 not. The macro *must* be disabled in default builds of the library
1818 for patent reasons.
1819
1820 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1821 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1822 isn't defined at compile time. This only changes the content of the
1823 rendered glyph to match the one of normal gray-level rendering,
1824 hence clients should not need to be modified.
1825
1826 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001827
Werner Lemberg745ff2c2006-09-19 05:48:02 +000018282006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1829
1830 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1831 LWFN fails and both are available.
1832
David Turnerf3050052006-09-11 12:00:32 +000018332006-09-11 David Turner <david@freetype.org>
1834
Werner Lembergf9644552006-09-12 13:48:10 +00001835 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1836 report their English names through an Apple Roman
1837 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001838
Werner Lembergf9644552006-09-12 13:48:10 +00001839 If the font uses another name entry with language_id == English, it
1840 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001841
Werner Lembergf9644552006-09-12 13:48:10 +00001842 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1843 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001844
Werner Lemberg36d2eab2006-09-05 19:24:34 +000018452006-09-05 Werner Lemberg <wl@gnu.org>
1846
1847 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001848 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001849 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1850 `HAN NOM B.ttf').
1851
1852 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1853
David Turner772e55d2006-09-05 09:45:15 +000018542006-09-05 David Turner <david@freetype.org>
1855
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001856 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001857
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001858 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1859 (TRaster): Remove `count_ex' and `count_ey'.
1860 (gray_find_cell): Remove 2nd and 3rd argument.
1861 (gray_alloc_cell): Merged with `gray_find_cell'.
1862 (gray_record_cell): Simplify.
1863 (gray_set_cell): Rewrite.
1864 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1865 (gray_render_span): Don't use FT_MEM_SET for small values.
1866 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1867 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1868 bitmap scanline.
1869 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001870
David Turneraa557a92006-09-04 16:42:44 +000018712006-09-04 David Turner <david@freetype.org>
1872
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001873 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1874 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001875
Werner Lemberg2d8629b2006-09-03 06:18:45 +000018762006-09-03 Werner Lemberg <wl@gnu.org>
1877
1878 * devel/ftoption.h: Synchronize with
1879 include/freetype/config/ftoption.h.
1880
1881 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1882 variable declaration.
1883 (gray_convert_glyph): Fix compiler warnings.
1884
David Turner6d79f212006-09-01 14:09:35 +000018852006-09-01 David Turner <david@freetype.org>
1886
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001887 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1888 to recognize a few fonts that require the automatic unpatented
1889 loader.
David Turnerbd502952006-09-01 19:05:24 +00001890
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001891 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1892 rasterizer. The speed improvement is between 15% and 25%, depending
1893 on the font data.
1894
1895 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1896 (TCell): Redefine.
1897 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1898 (gray_init_cells): Updated.
1899 (gray_find_cell, gray_alloc_cell): New functions.
1900 (gray_record_cell): Rewritten to use `gray_find_cell' and
1901 `gray_alloc_cell'.
1902 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1903 QSORT_THRESHOLD):
1904 Removed.
1905 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1906 gray_dump_cells): Removed.
1907 (gray_sweep): Rewritten.
1908 (gray_convert_glyph): Rewrite code which used one of the sorting
1909 functions.
1910 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001911
Werner Lembergd898aed2006-08-29 09:50:34 +000019122006-08-29 Dr. Werner Fink <werner@suse.de>
1913
1914 * configure: Make it possible to handle configure options which
1915 have strings containing spaces.
1916
19172006-08-27 David Turner <david@freetype.org>
1918
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001919 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1920 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1921 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1922
1923 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1924 src/truetype/truetype.c, src/truetype/ttdriver.c,
1925 src/truetype/ttgload.c, src/truetype/ttgload.h,
1926 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1927 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1928 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1929
1930 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1931 member `force_autohint'.
1932
1933 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1934
1935 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1936 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001937
Jens Claudiusa787f452006-08-27 11:26:18 +000019382006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1939
1940 Fix miscellaneous compiler warnings.
1941
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001942 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1943 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001944
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001945 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1946 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1947 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001948
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001949 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1950 volatileness of argument to ft_longjmp. Spotted by Werner
1951 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001952
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001953 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1954 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001955
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001956 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1957 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001958
Werner Lembergc4c35b72006-08-27 08:03:46 +000019592006-08-27 Werner Lemberg <wl@gnu.org>
1960
1961 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1962 Reported by Jens.
1963
Jens Claudius088e44e2006-08-22 14:24:30 +000019642006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001965
Jens Claudius088e44e2006-08-22 14:24:30 +00001966 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001967 about addresses of volatile objects passed as function arguments as
1968 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001969
Werner Lembergc4c35b72006-08-27 08:03:46 +00001970 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1971 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001972
1973 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1974 argument `table' a pointer to a volatile object.
1975
1976 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1977 argument `table' a pointer to a volatile object.
1978
Jens Claudius2652bd52006-08-18 17:20:37 +000019792006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1980
1981 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1982 variable `_sfnt' as volatile since it must keep its value across
1983 a call to ft_setjmp.
1984 (gxv_validate): Same for local variables `memory' and `valid'.
1985 (classic_kern_validate): Same for local variables `memory',
1986 `ckern', and `valid'.
1987
1988 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1989 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1990 `jstf', and 'valid'.
1991
1992 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1993 local variable `cmap'.
1994
David Turner9fbfc6a2006-08-16 09:11:31 +000019952006-08-16 David Turner <david@freetype.org>
1996
Werner Lemberg12342992006-08-19 11:18:09 +00001997 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1998 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001999
Werner Lemberg12342992006-08-19 11:18:09 +00002000 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
2001 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00002002
David Turner33f5f242006-08-16 16:50:55 +00002003
Werner Lemberg12342992006-08-19 11:18:09 +00002004 Improvements to native TrueType hinting. This is a first try,
2005 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
2006
2007 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
2008 `extra_points2'.
2009
2010 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
2011 `orus'.
2012
2013 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
2014 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
2015 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
2016 handle `extra_points2'.
2017
2018 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2019 Remove compiler warning.
2020 (cur_to_arg): Remove macro.
2021 (TT_Hint_Glyph): Updated.
2022 (TT_Process_Simple_Glyph): Handle `orus'.
2023
2024 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2025 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2026 (LOC_Ins_IUP): Renamed to...
2027 (IUP_WorkerRec): This.
2028 Add `orus' member.
2029 (Shift): Renamed to...
2030 (_iup_worker_shift): This.
2031 Updated.
2032 (Interp): Renamed to...
2033 (_iup_worker_interpolate): This.
2034 Updated to handle `orus'.
2035 (Ins_IUP): Updated.
2036
2037 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2038 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00002039
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000020402006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2041
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002042 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00002043 build ftvalid in ft2demos. This has been inadvertedly changed
2044 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002045
20462006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2047
Werner Lemberg12342992006-08-19 11:18:09 +00002048 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2049 Jens:
2050 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002051
Werner Lemberg12342992006-08-19 11:18:09 +00002052 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2053 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002054
2055 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2056
Jens Claudius9950adc2006-08-13 12:14:36 +000020572006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2058
Werner Lemberg12342992006-08-19 11:18:09 +00002059 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2060 T1_TOKEN_TYPE_KEY.
2061 (T1_FieldRec): Add `dict'.
2062 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2063 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2064 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002065
Werner Lemberg12342992006-08-19 11:18:09 +00002066 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2067 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002068
2069 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2070
2071 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002072 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2073 not T1_TOKEN_TYPE_ANY.
2074 (ps_parser_load_field): Make sure a token that should be a string or
2075 name is really a string or name.
2076 Avoid memory leak if a keyword has been already encountered and its
2077 value is overwritten.
2078 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2079 T1_FIELD_XXX.
2080 (parse_dict): Ignore keywords that occur in the wrong dictionary
2081 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002082
Werner Lemberg12342992006-08-19 11:18:09 +00002083 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2084 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002085
Werner Lemberg12342992006-08-19 11:18:09 +00002086 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2087 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002088
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000020892006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2090
2091 Move creation of field `buildchar' of T1_DecoderRec out of
2092 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2093 of it.
2094
2095 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2096 and `T1_Compute_Max_Advance'.
2097
2098 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2099 Remove field `face', add `len_buildchar'.
2100
2101 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2102 field `buildchar'.
2103
2104 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2105 finisher for T1_Decoder.
2106 (cid_slot_load_glyph): Do not ignore failure when initializing the
2107 T1_Decoder.
2108
2109 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2110 Updated.
2111 (t1_decoder_init): Remove initialization of fields `buildchar' and
2112 `len_buildchar'.
2113 (t1_decoder_done): Remove deallocation of field `buildchar'.
2114
2115 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2116 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2117 T1_Decoder.
2118 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2119 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2120 case of error.
2121
2122 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2123 `buildchar' of T1_FaceRec.
2124
2125 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2126 `buildchar' of T1_FaceRec.
2127
Werner Lemberg1a380e02006-07-14 18:28:08 +000021282006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2129
2130 * freetype2/include/freetype/internal/psaux.h: New macros
2131 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2132 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2133 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2134 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2135 (T1_DecoderRec): New fields `buildchar' and `face'.
2136 (IS_PS_TOKEN): New macro.
2137
2138 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2139 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2140
2141 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2142 `default_design_vector' and `num_default_design_vector'.
2143
2144 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2145 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2146 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2147
2148 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2149 `token' argument to be NULL if we want only to count the number of
2150 tokens.
2151 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2152 want to skip the array.
2153 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2154 want to skip the array.
2155
2156 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2157 support for (partially commented out) othersubrs 19-25, 27, and 28.
2158 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2159 (t1_decoder_done): Release new field `buildchar'.
2160
2161 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2162 functions.
2163 (t1_keywords): Register them.
2164 (t1_allocate_blend): Updated.
2165 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2166 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2167 (parse_dict): Remove `keyword_flags' argument.
2168 Use new macro IS_PS_TOKEN.
2169 Changed function so that later PostScript definitions override
2170 earlier ones.
2171 (t1_init_loader): Initialize new field `keywords_encountered'.
2172 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2173 `len_buildchar'.
2174 Remove `keywords_flags'.
2175
2176 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2177 `keywords_encountered'.
2178 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2179
2180 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2181 New entries for parsing /NDV, /CDV, and /DesignVector.
2182
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000021832006-07-07 Werner Lemberg <wl@gnu.org>
2184
2185 Add many checks to protect against malformed PCF files.
2186
2187 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2188 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2189
2190 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2191 data and check that tables don't overlap (using a simple
2192 bubblesort).
2193 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2194 New macros which give the size of data structures in the data
2195 stream.
2196 (pcf_get_properties): Use rough estimates to get array size limits.
2197 Assign `face->nprops' and `face->properties' earlier so that a call
2198 to PCF_Face_Done can do the clean-up in case of error.
2199 Protect against invalid string offsets.
2200 (pcf_get_metrics): Clean up code.
2201 Adjust tracing message levels.
2202 Use rough estimate to get array size limit.
2203 (pcf_get_bitmaps): Clean up code.
2204 Adjust tracing message levels.
2205 Use rough estimates to get offset limits.
2206 (pcf_get_encodings): Adjust tracing message level.
2207 (pcf_get_accel): Clean up code.
2208
Werner Lemberg8eb05252006-06-27 06:20:01 +000022092006-06-26 Werner Lemberg <wl@gnu.org>
2210
2211 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2212 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2213
Werner Lemberg24703f82006-06-26 19:12:51 +000022142006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2215
2216 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2217 (t1_decoder_parse_charstrings): Operator with
2218 opcode 15 pops its two arguments.
2219 Handle the case where the pops of an othersubr may be part of a
2220 subroutine.
2221 Handle unknown othersubrs gracefully: count their operands and let
2222 the following pop operators push the operands as the results onto
2223 the Type1 stack.
2224 Improve handling of setcurrentpoint opcode.
2225
Werner Lembergc011f4c2006-06-26 09:40:00 +000022262006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2227
2228 The Type 1 parser now skips over top-level procedures as required
2229 for a `Simplified Parser'. This makes the parser more robust as it
2230 doesn't poke around in PostScript code. Additionally, it makes the
2231 FontDirectory hackery in src/type1/t1load.c unnecessary.
2232
2233 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2234 (skip_literal_string): Add FT_Error as return value.
2235 Handle escapes better.
2236 (skip_string): Add FT_Error as return value.
2237 Don't set `parser->error' but return error code directly.
2238 (skip_procedure): New function.
2239 (ps_parser_skip_PS_token): Handle procedures.
2240 Update code.
2241 (ps_parser_to_token): Update code.
2242 (ps_parser_load_field_table): Handle bbox entries also.
2243
2244 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2245 Add commented-out code for synthetic fonts.
2246
Werner Lemberga2da05c2006-06-25 06:27:27 +000022472006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2248
2249 Fix two hinting bugs as reported in
2250 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2251
2252 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2253 `first_point' member.
2254
2255 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2256 `first_point'.
2257 (TT_Process_Composite_Glyph): Always untouch points.
2258
2259 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2260 `first_point' and `last_point' in case of composite glyphs.
2261 (Ins_IUP): Fix computation of `end_point'.
2262
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000022632006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2264
Werner Lembergef3d2c22006-06-25 06:07:14 +00002265 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2266 Mac. The original patch was written by David Sachitano and Lawrence
2267 Coopet, and modified by Sean McBride for MPW compatibility. Only
2268 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002269
Werner Lembergef3d2c22006-06-25 06:07:14 +00002270 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2271 Mac OS X platforms.
2272 (OS_INLINE): Undefine before definition.
2273 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2274 FontAssociation table in FOND resource.
2275 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2276 and fontSize at each entry of FontAssociation table in FOND
2277 resource.
2278 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2279 ffStylOff of FamilyRecord header of FOND resource, the header,
2280 fontSize, fontID at each entry of FontAssociation table, and
2281 StyleMapping table.
2282 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002283
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000022842006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2285
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002286 Public API of TrueTypeGX, OpenType, and classic kern table validator
2287 should return `FT_Err_Unimplemented_Feature' if validation service
2288 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002289 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002290 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2291
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002292 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2293 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2294 unavailable.
2295 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2296 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002297
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002298 * src/base/ftotval.c (FT_OpenType_Validate): Return
2299 FT_Err_Unimplemented_Feature if OpenType validation service is
2300 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002301
Werner Lembergb10e45a2006-06-08 07:32:56 +000023022006-06-08 Werner Lemberg <wl@gnu.org>
2303
2304 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2305 errors.
2306
David Turner5f1f7502006-06-07 05:11:50 +000023072006-06-07 David Turner <david@freetype.org>
2308
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002309 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2310 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2311 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002312
David Turner457b4a82006-06-06 08:14:14 +000023132006-06-06 David Turner <david@freetype.org>
2314
Werner Lemberg4836f952006-06-06 12:54:08 +00002315 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002316
Werner Lemberg4836f952006-06-06 12:54:08 +00002317 We change `ps_unicodes_init' so that it also takes a
2318 `free_glyph_name' callback to release the glyph names returned by
2319 `get_glyph_name'
2320
2321 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2322 Renamed to ...
2323 (PS_GetGlyphNameFunc): This.
2324 (PS_FreeGlyphNameFunc): New typedef.
2325 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2326
2327 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2328 argument.
2329 (cff_sid_free_glyph_name): New function.
2330 (cff_cmap_unicode_init): Updated.
2331
2332 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2333
2334 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2335 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002336
2337
David Turner09717352006-06-04 14:33:08 +000023382006-06-04 David Turner <david@freetype.org>
2339
Werner Lembergd724f202006-06-04 15:17:41 +00002340 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2341 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002342 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002343
Werner Lembergd724f202006-06-04 15:17:41 +00002344 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2345 of `face->num_glyphs' which missed the last glyph, due to
2346 the offset-by-1 computation, since the PFR format doesn't
2347 guarantee that glyph index 0 corresponds to the `missing
2348 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002349
Werner Lemberg33779662006-05-26 06:30:05 +000023502006-05-25 Werner Lemberg <wl@gnu.org>
2351
2352 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2353 `-no-undefined'. Reported by Christian Biesinger.
2354
Werner Lemberg24773d62006-05-20 08:53:13 +000023552006-05-19 Brian Weed <bw@imaginengine.com>
2356
2357 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2358 have debug information, and debug libraries use `C7 compatible'
2359 debug info.
2360
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000023612006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2362
Werner Lemberga6523a62006-05-20 08:47:01 +00002363 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002364 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002365
Werner Lemberga6523a62006-05-20 08:47:01 +00002366 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2367 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002368
2369 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002370 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002371
23722006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2373
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002374 * build/unix/configure.raw: Add a fallback to disable Carbon
2375 dependency, if configured with no options on Mac OS X.
2376
23772006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2378
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002379 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002380 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002381 the second part of Savannah bug #16590.
2382
Werner Lemberg545c4e52006-05-17 22:55:04 +000023832006-05-18 Werner Lemberg <wl@gnu.org>
2384
2385 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2386 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2387
David Turnerdc3ff312006-05-17 12:59:35 +000023882006-05-17 David Turner <david@freetype.org>
2389
Werner Lemberg545c4e52006-05-17 22:55:04 +00002390 This is a major patch used to drastically improve the performance of
2391 loading glyphs. This both speeds up loading the glyph vectors
2392 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002393
Werner Lemberg545c4e52006-05-17 22:55:04 +00002394 We now use inline assembler code with GCC to implement `FT_MulFix',
2395 which is probably the most important function related to the
2396 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002397
Werner Lemberg545c4e52006-05-17 22:55:04 +00002398 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002399
2400
Werner Lemberg545c4e52006-05-17 22:55:04 +00002401 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2402 `cursor' and `limit'.
2403
2404 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2405 New functions.
2406 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2407 [TEST]: Remove.
2408
2409 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2410 code.
2411
2412 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2413 `FT_ZERO'
2414 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2415 (af_glyph_hints_reload: Rewrite recognition of weak points.
2416
2417 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2418 constant values out of the loops.
2419
2420 * src/autofit/aftypes.h: Updated.
2421
2422 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2423
2424 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2425 product to get orientation.
2426
2427 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2428 (FT_Stream_OpenGzip): Use it to handle small files directly in
2429 memory.
2430
2431 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2432 Improve performance.
2433
2434 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2435 `limit'.
2436
2437 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2438 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2439 exceedingly large values of number of contours. Speed up by
2440 reducing the number of loops.
2441
2442 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2443
2444
2445 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2446 used to detect rogue clients from 4 to 16. This is to prevent some
2447 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2448 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002449
Werner Lembergde2d90a2006-05-17 08:54:30 +000024502007-05-17 Werner Lemberg <wl@gnu.org>
2451
2452 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002453 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002454
24552006-05-16 Werner Lemberg <wl@gnu.org>
2456
2457 * docs/PROBLEMS: Updated icl issues.
2458
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002459----------------------------------------------------------------------------
2460
Werner Lemberg42b63b22007-01-21 21:01:33 +00002461Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002462David Turner, Robert Wilhelm, and Werner Lemberg.
2463
2464This file is part of the FreeType project, and may only be used, modified,
2465and distributed under the terms of the FreeType project license,
2466LICENSE.TXT. By continuing to use, modify, or distribute this file you
2467indicate that you have read the license and understand and accept it
2468fully.
2469
2470
2471Local Variables:
2472version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002473coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002474End: