blob: 1bf87f2bc1b95fe4f9da381549f324a0e88c94c1 [file] [log] [blame]
David Turner0ba89912007-07-01 09:34:04 +000012007-07-01 David Turner <david@freetype.org>
2
Werner Lemberge3be90b2007-07-02 14:58:58 +00003 * include/freetype/freetype.h, src/base/ftpatent.c
4 (FT_Face_SetUnpatentedHinting): New function to dynamically change
5 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +00006
Werner Lemberge3be90b2007-07-02 14:58:58 +00007 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
8 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +00009
David Turner74cc0e92007-06-30 22:54:12 +0000102007-06-30 David Turner <david@freetype.org>
11
Werner Lemberge3be90b2007-07-02 14:58:58 +000012 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
13 initialization.
David Turner74cc0e92007-06-30 22:54:12 +000014
Werner Lemberge3be90b2007-07-02 14:58:58 +000015 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
16 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +000017
Werner Lemberg7723dc32007-06-26 04:44:35 +0000182007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
19
20 Add autofit module for Indic scripts. This currently just reuses
21 the CJK-specific functions.
22
23 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
24 macro.
25 * devel/ftoption.h: Synchronize with
26 include/freetype/config/ftoption.h.
27
28 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
29
30 * src/autofit/afglobal.c, src/autofit/aftypes.h,
31 src/autofit/autofit.c: Updated.
32
33 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
34 (AUTOF_DRV_SRC): Updated.
35
David Turner8f626b02007-06-22 22:22:38 +0000362007-06-23 David Turner <david@freetype.org>
37
Werner Lemberg7854c4a2007-06-23 07:16:20 +000038 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
39 2007-06-16 that prevented the TrueType module from loading most
40 glyphs.
David Turner8f626b02007-06-22 22:22:38 +000041
Werner Lemberg5b4d4352007-06-20 07:07:55 +0000422007-06-20 Werner Lemberg <wl@gnu.org>
43
44 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
45 change.
46
Werner Lemberg9fe58152007-06-19 07:57:30 +0000472007-06-19 Werner Lemberg <wl@gnu.org>
48
49 * src/type1/t1load.c (parse_encoding): Handle one more error.
50
Werner Lemberg5a829392007-06-19 04:53:30 +0000512007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
52
53 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
54 FNT_Err_Invalid_File_Format if file format was recognized but
55 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
56 Add verbose debug logs to make it easier to debug failing load
57 attempts.
58 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
59 so return an error if requested face index is > 0.
60 Do not do further attempt to load fonts if a previous attempt has
61 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
62 file format has been recognized but no fonts found in the file.
63
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000642007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
65
66 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
67 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
68 the compiler warnings against unused arguments.
69 (FT_ATSFontGetFileReference): Ditto.
70 (FT_GetFile_From_Mac_ATS_Name): Ditto.
71 (FT_New_Face_From_FSSpec): Ditto.
72 (lookup_lwfn_by_fond): Fix wrong comment.
73 Replace `const StringPtr' by more appropriate type
74 `ConstStr255Param'.
75 FSRefMakePathPath always returns UTF8 POSIX pathname in
76 Mach-O, thus HFS pathname support is dropped.
77 (count_faces): Remove HLock and HUnlock which is not
78 required on Mac OS X anymore.
79 (FT_New_Face_From_SFNT): Ditto.
80 (FT_New_Face_From_FOND): Ditto.
81 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
82 except of HFS pathname support and HLock/HUnlock.
83 They are required on classic CFM environment.
84
852007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +000086
Werner Lembergf9fa1c82007-06-18 17:00:05 +000087 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
88 assertion.
89 (ps_parser_to_bytes): Fix error message.
90
Werner Lembergbb2510d2007-06-18 17:07:49 +000091 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000092 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
93 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +000094 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +000095 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000096
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000972007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +000098
Werner Lembergf48aec72007-06-18 07:07:55 +000099 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
100 logic.
101 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
102 correctly.
103 (ps_parser_load_field_table): Use `fields->array_max' instead of
104 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
105
Werner Lemberg95104a42007-06-18 07:33:10 +0000106 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
107 2007-06-06.
108
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001092007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000110
111 * src/tools/ftrandom.c (font_size): New global variable.
112 (TestFace): Use it.
113 (main): Handle new option `--size' to set `font_size'.
114 (Usage): Updated.
115
Werner Lembergbe183eb2007-06-17 11:27:17 +0000116 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
117 invalid font.
118 (FNT_Load_Glyph): Protect against invalid bitmap width.
119
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001202007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000121
Werner Lemberge12ed562007-06-17 05:31:23 +0000122 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
123 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000124
Werner Lemberge12ed562007-06-17 05:31:23 +0000125 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
126 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000127
Werner Lemberge12ed562007-06-17 05:31:23 +0000128 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
129 and `zp2'.
130 (Ins_IP): Check argument ranges to reject bogus operations properly.
131 (IUP_WorkerRec): Add `max_points' member.
132 (_iup_worker_interpolate): Check argument ranges.
133 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000134
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001352007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000136
137 * src/winfonts/winfnt.h: Add necessary structures for PE resource
138 parsing.
139 (WinPE32_HeaderRec): New structure.
140 (WinPE32_SectionRec): New structure.
141 (WinPE_RsrcDirRec): New structure.
142 (WinPE_RsrcDirEntryRec): New structure.
143 (WinPE_RsrcDataEntryRec): New structure.
144 (FNT_FontRec): Remove unused `size_shift' field.
145
146 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
147 loading bitmap .fon files in PE format.
148
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001492007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000150
151 * builds/win32/ftdebug.c: Unify debug level handling with other
152 platforms.
153
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001542007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000155
156 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
157 console as well as to the debugger.
158
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001592007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000160
161 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
162 cover all ranges which could possibly be handled by the aflatin
163 module (since the default fallback for unknown ranges is now the
164 afcjk module). It might be necessary to fine-tune this further by
165 splitting off modules for Greek, Cyrillic, or other blocks.
166
David Turnerb7920172007-06-11 05:37:35 +00001672007-06-11 David Turner <david@freetype.org>
168
Werner Lemberg49e18b82007-06-11 21:15:09 +0000169 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
170 incorrect segment linking computation. This was the root cause of
171 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000172
173
Werner Lemberg49e18b82007-06-11 21:15:09 +0000174 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
175 to improve the Latin auto-hinter. Note that the new code is
176 disabled by default since it is not stabilized yet.
177
178 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
179 (disabled currently).
180
181 * src/autofit/afhints.c: Remove dead code.
182 (af_axis_hints_new_edge): Add argument to handle segment directions.
183 (af_edge_flags_to_string): New function.
184 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
185 option flags.
186 (af_glyph_hints_reload): Add argument to handle inflections.
187 Simplify.
188 (af_direction_compute): Fine tuning.
189 (af_glyph_hints_align_edge_points): Fix logic.
190 (af_glyph_hints_align_strong_points): Do linear search for small
191 edge counts.
192 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
193 (af_iup_shift): Handle zero `delta'.
194
195 * src/autofit/afhints.h: Updated.
196 (AF_SORT_SEGMENTS): New macro (disabled).
197 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
198
199 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
200 argument to pass option flags for handling scripts.
201 * src/autofit/afglobal.h: Updated.
202
203 * src/autofit/afcjk.c: Updated.
204 * src/autofit/aflatin.c: Updated.
205 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
206
207 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
208 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
209 Don't set `edge->dir'
210 (af_latin_hint_edges): Add more logging.
211
212 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000213
Werner Lembergf6c120f2007-06-11 04:55:58 +00002142007-06-11 Werner Lemberg <wl@gnu.org>
215
Werner Lembergcf7b7642007-06-11 04:58:01 +0000216 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000217
David Turner84c6f882007-06-10 20:51:04 +00002182007-06-10 David Turner <david@freetype.org>
219
Werner Lembergf6c120f2007-06-11 04:55:58 +0000220 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
221 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000222
Werner Lembergf6c120f2007-06-11 04:55:58 +0000223 * include/freetype/config/ftoption.h: Clarify documentation
224 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000225
Werner Lembergf6c120f2007-06-11 04:55:58 +0000226
227 Add new `FT_Face_CheckTrueTypePatents' API.
228
229 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
230 declaration.
231
232 * include/freetype/internal/services/svttglyf.h,
233 src/base/ftpatent.c: New files.
234
235 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
236 New macro.
237
238 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
239 `ttpload.h'.
240 (tt_service_truetype_glyf): New service structure.
241 (tt_services): Register it.
242
243 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
244 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000245
Werner Lemberg33db39e2007-06-08 06:30:29 +00002462007-06-08 Werner Lemberg <wl@gnu.org>
247
David Turner84c6f882007-06-10 20:51:04 +0000248 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000249 Fonts without a cmap must be handled correctly by FreeType (anything
250 else would be a bug).
251
252
253 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
254 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
255
Werner Lemberg88ab6382007-06-07 05:01:56 +00002562007-06-07 Werner Lemberg <wl@gnu.org>
257
258 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
259 tt_sbit_decoder_load_image): Protect against integer overflows.
260
261
262 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
263 for `x_control' and `y_control'.
264
Werner Lemberg2a2dca62007-06-06 04:39:37 +00002652007-06-06 Werner Lemberg <wl@gnu.org>
266
267 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
268
Werner Lemberga8d65492007-06-06 04:47:49 +0000269
270 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
271 FreeType error.
272
Werner Lemberg470210b2007-06-06 10:05:49 +0000273
274 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
275 `font_count'.
276
277
278 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
279
280
281 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
282 `FT_Error'.
283 Check `fd_index'.
284 (cff_slot_load): Updated.
285 * src/cff/cffgload.h: Updated.
286
Werner Lemberg6c054752007-06-05 05:27:54 +00002872007-06-05 Werner Lemberg <wl@gnu.org>
288
289 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
290 (pfr_glyph_load_simple): Convert assertion into normal FreeType
291 error.
292 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000293 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
294 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000295
296 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
297
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000298
Werner Lemberg470210b2007-06-06 10:05:49 +0000299 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000300
Werner Lemberge5c14d92007-06-05 20:50:37 +0000301
302 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
303 in case of parsing error.
304 (ps_parser_load_field): Updated.
305
306 * src/type1/t1load.c (parse_font_matrix): Updated.
307
Werner Lembergad18b362007-06-04 07:04:05 +00003082007-06-04 Werner Lemberg <wl@gnu.org>
309
310 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
311
312 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
313
Werner Lemberg3d507fe2007-06-03 16:54:55 +00003142007-06-03 Werner Lemberg <wl@gnu.org>
315
Werner Lemberg99a320b2007-06-03 19:21:26 +0000316 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
317 George Williams (with some modifications).
318
3192007-06-03 Werner Lemberg <wl@gnu.org>
320
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000321 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
322 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
323 face == NULL. Suggested by Graham Asher.
324
Werner Lembergce280a22007-06-03 05:58:30 +00003252007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
326
327 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
328
Werner Lemberg5b591e42007-06-01 22:16:43 +00003292007-06-02 Werner Lemberg <wl@gnu.org>
330
331 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
332 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
333
334 * src/bdf/bdflib.c (bdf_load_font): Use them.
335
336 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
337
Werner Lembergb9933f42007-06-01 21:27:12 +00003382007-06-01 Werner Lemberg <wl@gnu.org>
339
340 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
341 (FTC_CMapCache_Lookup): Remove unused code.
342
Werner Lembergc793d902007-06-01 20:51:11 +00003432007-06-01 Sean McBride <sean@rogue-research.com>
344
345 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
346 unused.
347
Werner Lembergbebc7b12007-06-01 06:32:30 +00003482007-06-01 Werner Lemberg <wl@gnu.org>
349
350 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
351 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000352 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000353
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000354 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
355 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
356
Werner Lembergba03af62007-05-30 13:57:02 +00003572007-05-30 Werner Lemberg <wl@gnu.org>
358
359 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
360 against too small binary data strings.
361
362 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
363
David Turnerf0cd69c2007-05-28 15:42:09 +00003642007-05-28 David Turner <david@freetype.org>
365
Werner Lemberg99e0c182007-05-29 07:00:23 +0000366 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
367 transformation. This significantly reduces the loading time of CFF
368 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000369
Werner Lemberg99e0c182007-05-29 07:00:23 +0000370 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000371
Werner Lemberg99e0c182007-05-29 07:00:23 +0000372 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
373 hinting script to CJK, since it works well with more scripts than
374 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
375 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000376
Werner Lemberg1c8980e2007-05-25 07:11:12 +00003772007-05-25 Werner Lemberg <wl@gnu.org>
378
379 * docs/CHANGES: Updated.
380
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00003812007-05-24 Werner Lemberg <wl@gnu.org>
382
383 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
384 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
385
3862007-05-24 Graham Asher <graham.asher@btinternet.com>
387
388 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
389 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
390
David Turner0d0365e2007-05-22 09:53:44 +00003912007-05-22 David Turner <david@freetype.org>
392
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000393 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
394 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000395
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000396
397 Avoid heap blowup with very large .Z font files. This fixes
398 Savannah bug #19910.
399
400 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
401 `in_limit', `pad', `pad_bits', and `in_buff' members.
402 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
403 `buf_total' members.
404
405 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
406 only one argument.
407 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000408
4092007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000410
411 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
412 (ps_dimension_set_mask_bits): Remove `const'.
413
David Turner0d0365e2007-05-22 09:53:44 +00004142007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000415
416 * src/sfnt/ttmtx.c (tt_face_get_metrics)
417 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
418
Werner Lembergb826fa72007-05-19 07:18:48 +00004192007-05-19 Derek Clegg <dclegg@apple.com>
420
421 Savannah patch #5929.
422
423 * include/freetype/tttables.h, src/base/ftobjcs.c
424 (FT_Get_CMap_Format): New function.
425
426 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
427 `format' member.
428 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
429 cmap_info->format.
430
Werner Lemberg6f99c882007-05-19 07:01:49 +00004312007-05-19 Werner Lemberg <wl@gnu.org>
432
433 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
434 before handling subglyphs so that it can be reinitialized each time.
435 This fixes Savannah bug #19859.
436
Werner Lemberg95bc9d32007-05-16 15:19:42 +00004372007-05-16 Werner Lemberg <wl@gnu.org>
438
439 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
440 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
441 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
442 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
443 tt_face_get_metrics): Fix type-punning issues.
444
David Turner0a24bd22007-05-15 10:54:10 +00004452007-05-15 David Turner <david@freetype.org>
446
447 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000448 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
449 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000450 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000451 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000452
Werner Lemberg607dec72007-05-15 06:49:37 +00004532007-05-15 Graham Asher <graham.asher@btinternet.com>
454
455 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
456 variable.
457 * src/autofit/afloader.c (af_loader_load_g): Ditto.
458
459 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
460 (open_face_from_buffer): Initialize `stream'.
461 (FT_Request_Metrics): Remove unused variable.
462 Remove redundant `break' statements.
463 (FT_Get_Track_Kerning): Remove unused variable.
464
465 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
466 afm_parse_kern_data): Remove redundant
467 `break' statements.
468 (afm_parser_parse): Ditto.
469 Don't use uninitialized variables.
470
471 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
472 Use `|' operator instead of `^' to set it.
473 Update all users.
474
475 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
476 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
477
478 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
479 comparison.
480 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
481 (TT_Load_Glyph): Remove unused variable.
482
Werner Lemberg8d463a52007-05-13 16:01:55 +00004832007-05-13 Derek Clegg <dclegg@apple.com>
484
485 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
486 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
487
David Turner711cf842007-05-11 14:36:24 +00004882007-05-11 David Turner <david@freetype.org>
489
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000490 * src/cache/ftbasic.c, include/freetype/ftcache.h
491 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
492 functions that allow us to look up glyphs using an FTC_Scaler object
493 to specify the size, making it possible to use fractional pixel
494 sizes.
495
496 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
497 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000498
Werner Lemberg94be20e2007-05-09 20:02:55 +00004992007-05-09 Graham Asher <graham.asher@btinternet.com>
500
501 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
502 (af_latin_metrics_scale_dim): Fix compiler warnings.
503
Werner Lemberg41271032007-05-06 04:51:48 +00005042007-05-06 Werner Lemberg <wl@gnu.org>
505
506 * builds/win32/visualce/freetype.sln: Removed, as requested by
507 Vincent.
508
Werner Lembergdf49e692007-05-04 06:30:05 +00005092007-05-04 Vincent RICHOMME <richom.v@free.fr>
510
511 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
512 PC targets.
513
514 * docs/CHANGES: Document them.
515
5162007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000517
518 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
519 mmap (which might happen on some RTOS). From Savannah patch #5909.
520
Werner Lemberg106eaf12007-05-03 07:07:47 +00005212007-05-03 Werner Lemberg <wl@gnu.org>
522
523 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
524 * include/freetype/freetype.h (FT_Set_Char_Size): Update
525 documentation.
526
Werner Lemberg1b5267d2007-04-28 21:06:15 +00005272007-04-28 Victor Stinner <victor.stinner@inl.fr>
528
529 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
530 `cmap'.
531
Werner Lembergcc712a22007-04-27 17:16:50 +00005322007-04-27 Werner Lemberg <wl@gnu.org>
533
534 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
535 number of points in contours. Problem reported by Victor Stinner
536 <victor.stinner@haypocalc.com>.
537 (TT_Process_Simple_Glyph): Synchronize variable types.
538
Werner Lemberg45bb18f2007-04-26 06:26:35 +00005392007-04-26 Werner Lemberg <wl@gnu.org>
540
541 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
542 zero in case of error. This fixes Savannah bug #19689.
543
David Turnera8b45e62007-05-11 14:10:30 +00005442007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
545
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000546 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
547 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000548
Werner Lembergfcc1f472007-04-10 11:51:50 +00005492007-04-10 Martin Horak <horakm@centrum.cz>
550
551 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
552 Ignore `hhea' table. This fixes Savannah bug #19261.
553
Werner Lemberg14bf82e2007-04-10 04:09:49 +00005542007-04-09 Werner Lemberg <wl@gnu.org>
555
556 * Version 2.3.4 released.
557 =========================
558
559
560 Tag sources with `VER-2-3-4'.
561
562 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
563 version number to 2.3.4.
564
565 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
566 builds/win32/visualc/freetype.dsp,
567 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
568
569 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
570
571 * builds/unix/configure.raw (version_info): Set to 9:15:3.
572
Werner Lembergf4a52a62007-04-09 08:40:11 +00005732007-04-09 Martin Horak <horakm@centrum.cz>
574
575 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
576 memory stream to avoid a crash with the incremental memory
577 interface (Savannah bug #19260).
578
David Turner1dcb4442007-04-06 08:19:04 +00005792007-04-06 David Turner <david@freetype.org>
580
Werner Lembergc81cf612007-04-06 09:28:23 +0000581 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
582 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000583
Werner Lemberg9f83e052007-04-05 02:28:23 +00005842007-04-04 Werner Lemberg <wl@gnu.org>
585
586 * Version 2.3.3 released.
587 =========================
588
589
590 Tag sources with `VER-2-3-3'.
591
592 * docs/CHANGES: Mention CVE-2007-1351.
593
David Turner7338ec22007-04-03 14:30:34 +00005942007-04-03 David Turner <david@freetype.org>
595
596 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000597 if one of the resolution values is 0, treat it as if it were the
598 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000599
David Turnere6472c12007-04-02 13:13:54 +00006002007-04-02 David Turner <david@freetype.org>
601
Werner Lemberg94f12272007-04-03 07:19:53 +0000602 Add special code to detect `extra-light' fonts and do not snap their
603 stem widths too much to avoid bizarre hinting effects.
604
605 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
606 `extra_light' members.
607
608 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
609 them.
610 (af_latin_metrics_scale_dim): Set `extra_light'.
611 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000612
David Turner3f539692007-03-28 14:53:40 +00006132007-03-28 David Turner <david@freetype.org>
614
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000615 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000616 padding.
617
Werner Lemberga08b2172007-03-28 07:17:17 +00006182007-03-28 Werner Lemberg <wl@gnu.org>
619
620 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
621 gracefully.
622 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000623 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000624 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
625 number of code points in Unicode.
626
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000627 * builds/win32/visualc/index.html,
628 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000629 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000630 s/232/233/.
631
632 * docs/CHANGES: Mention ftdiff.
633
David Turner3b242d32007-03-26 12:03:04 +00006342007-03-26 David Turner <david@freetype.org>
635
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000636 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
637 corresponding code.
638 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000639
Werner Lemberga08b2172007-03-28 07:17:17 +0000640 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000641 computations in order to ignore single-point contours. These are
642 never rasterized and correspond in certain fonts to mark-attach
643 points that are very far from the glyph's real outline, ruining the
644 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000645
Werner Lemberga08b2172007-03-28 07:17:17 +0000646 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000647 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000648 Otherwise code that uses them will most certainly ruin the fixed
649 advance property.
David Turner23553d62007-03-26 13:37:17 +0000650
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000651 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
652 documentation and bump version number to 2.3.3.
653
654 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
655
656 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000657
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00006582007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
659
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000660 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
661 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000662 * builds/vms/ftconfig.h: Ditto.
663 * include/freetype/config/ftconfig.h: Ditto.
664
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00006652007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
666
Werner Lemberg14ffe092007-03-22 06:12:43 +0000667 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
668 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000669 proposed by Sean McBride:
670 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
671
6722007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
673
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000674 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
675 setjmp, proposed by Sean McBride:
676 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
677
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00006782007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
679
Werner Lembergc9f6c662007-03-21 13:30:14 +0000680 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
681 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
682 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000683
David Turner74c34eb2007-03-18 07:19:31 +00006842007-03-18 David Turner <david@freetype.org>
685
Werner Lembergc9f6c662007-03-21 13:30:14 +0000686 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
687 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000688
Werner Lembergc9f6c662007-03-21 13:30:14 +0000689 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000690
David Turner89020d92007-03-17 17:48:57 +00006912007-03-17 David Turner <david@freetype.org>
692
Werner Lembergc9f6c662007-03-21 13:30:14 +0000693 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
694 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000695
Werner Lemberg25d592a2007-03-09 07:59:35 +00006962007-03-09 Werner Lemberg <wl@gnu.org>
697
698 * Version 2.3.2 released.
699 =========================
700
701
702 Tag sources with `VER-2-3-2'.
703
704 * builds/win32/visualc/index.html,
705 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000706 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000707 s/231/232/.
708
David Turner3a51afa2007-03-08 10:50:38 +00007092007-03-08 David Turner <david@freetype.org>
710
Werner Lemberg25d592a2007-03-09 07:59:35 +0000711 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000712
Werner Lemberg25d592a2007-03-09 07:59:35 +0000713 * builds/unix/configure.raw (version_info): Set to 9:13:3.
714
715 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
716
717 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000718
Werner Lemberg1e259de2007-03-08 15:39:21 +0000719 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
720 function to work properly, over-writing user-provided buffers in
721 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000722
David Turner121cad52007-03-08 16:43:50 +0000723
Werner Lemberg3d92f082007-03-06 11:59:24 +00007242007-03-05 Werner Lemberg <wl@gnu.org>
725
726 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
727 macro for `strstr'.
728
729 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
730 `trick_names', as suggested by Ivan Nincic.
731
David Turner085bc6e2007-03-05 17:40:03 +00007322007-03-05 David Turner <david@freetype.org>
733
Werner Lembergd112cf02007-03-06 12:06:56 +0000734 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
735 case FT_Init_FreeType fails for some reason. Problem reported by
736 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000737
Werner Lembergd112cf02007-03-06 12:06:56 +0000738 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
739 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
740 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
741 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000742
Werner Lembergd112cf02007-03-06 12:06:56 +0000743 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
744 signed values, not unsigned ones. Problem reported by Johannes
745 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000746
David Turner601aefe2007-02-21 16:47:49 +00007472007-02-21 David Turner <david@freetype.org>
748
Werner Lembergde5e6862007-02-25 21:06:43 +0000749 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
750 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000751
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00007522007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
753
754 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
755 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
756 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
757
Werner Lemberga0915172007-02-16 08:12:50 +00007582007-02-16 Werner Lemberg <wl@gnu.org>
759
760 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
761 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
762
David Turner2c4500e2007-02-14 15:08:47 +00007632007-02-14 David Turner <david@freetype.org>
764
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000765 It seems that the following changes fix most of the known
766 interpreter problems with my fonts, but more testing is needed,
767 though.
768
769 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
770 (TT_MulFix14): Rewrite.
771 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
772 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000773
Werner Lembergc6a14082007-02-12 22:08:15 +00007742007-02-12 Werner Lemberg <wl@gnu.org>
775
776 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
777 warnings.
778
779 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
780 (bdf_interpret_style): Ditto.
781
David Turnerc0f9c4a2007-02-12 14:55:03 +00007822007-02-12 David Turner <david@freetype.org>
783
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000784 Simplify projection and dual-projection code interface.
785
Werner Lemberg406d25f2007-02-12 22:01:18 +0000786 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
787 FT_Vector' as argument type.
788 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
789 Updated.
790 (CUR_fast_project, CUR_fast_dualproj): New macros.
791 (Project, Dual_Project, Project_x, Project_y): Updated.
792 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
793 macros.
794
795
796 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
797 adjustments for the non-light auto-hinted modes. Gets rid of
798 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000799
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000800 * src/autofit/aflatin.c (af_latin_hints_link_segments,
801 af_latin_hints_compute_edges): Slight optimization of the segment
802 linker and better handling of serif segments to get rid of broken
803 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000804
David Turnerc0f9c4a2007-02-12 14:55:03 +0000805
Werner Lemberg442bfb82007-02-12 21:44:10 +0000806 Introduce new string functions and the corresponding macros to get
807 rid of various uses of strcpy and other `evil' functions, as well as
808 to simplify a few things.
809
810 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
811 ft_mem_strcpyn): New declarations.
812 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
813 macros.
814 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
815 functions.
816
817 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
818 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
819 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
820 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
821 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
822 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
823 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
824 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000825
Werner Lemberg406d25f2007-02-12 22:01:18 +0000826 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
827
Werner Lemberg582067d2007-02-11 15:03:05 +00008282007-02-11 Werner Lemberg <wl@gnu.org>
829
830 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
831 non-spacing glyphs.
832
Werner Lemberg8f474532007-02-07 08:31:01 +00008332007-02-07 Tom Parker <palfrey@tevp.net>
834
835 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
836 pointer.
837
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008382007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
839
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000840 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
841 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000842 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000843 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
844 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
845 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
846 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000847
848 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
849 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000850 * builds/mac/ftmac.c: Ditto.
851
8522007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
853
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000854 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000855 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000856 #include <ftmac.c>.
857
8582007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
859
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000860 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
861 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
862 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
863 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
864 FT_GetFilePath_From_Mac_ATS_Name.
865 * builds/mac/ftmac.c: Ditto.
866
8672007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
868
Werner Lembergdcbb7082007-02-08 08:54:09 +0000869 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000870 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
871 for passing to FT_New_Face_From_FSSpec.
872
8732007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
874
Werner Lembergdcbb7082007-02-08 08:54:09 +0000875 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000876 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000877
878 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
879 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000880 * builds/mac/ftmac.c (OS_INLINE): Ditto.
881
Werner Lemberg313d7772007-02-01 08:10:45 +00008822007-02-01 Werner Lemberg <wl@gnu.org>
883
884 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
885 Explain why applications shouldn't use it. Found by Alexei.
886
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008872007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000888
889 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
890 message.
891
892 * src/gxvalid/gxvmort1.c
893 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
894 message.
895
Werner Lemberg53935932007-01-31 08:53:02 +00008962007-01-31 Werner Lemberg <wl@gnu.org>
897
898
899 * Version 2.3.1 released.
900 =========================
901
902
903 Tag sources with `VER-2-3-1-FINAL'.
904
905 * builds/win32/visualc/freetype.dsp,
906 builds/win32/visualc/freetype.vcproj: s/230/231/.
907 * builds/win32/visualc/index.html: s/221/231/.
908
909 * vms_make.com: Add `ftgasp'.
910
David Turnera7ee6082007-01-30 10:33:53 +00009112007-01-30 David Turner <david@freetype.org>
912
Werner Lemberg53935932007-01-31 08:53:02 +0000913 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000914
Werner Lemberg53935932007-01-31 08:53:02 +0000915 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000916
Werner Lemberg25d592a2007-03-09 07:59:35 +0000917 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000918 s/2.3.0/2.3.1/.
919
920 * builds/unix/configure.raw (version_info): Set to 9:12:3.
921
922
923 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
924 (af_loader_load_g): Disable the warper (i.e., the light hinting
925 improvements) to make a 2.3.1 bugfix release before introducing a
926 new feature. This should give us more time to tune and improve the
927 warper for the next release.
928
929 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000930
David Turnerd91eebd2007-01-26 15:05:41 +00009312007-01-25 David Turner <david@freetype.org>
932
Werner Lembergbf241762007-01-26 16:08:49 +0000933 For light auto-hinting, improve glyph advance widths and resurrect
934 normal/full hinting to its normal quality.
935
936 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
937 and `xmax_delta'.
938 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
939 and `xmax_delta'.
940
941 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
942 preprocessor conditional with if-clause, handling both light and
943 normal mode.
944
945 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
946 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000947
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00009482007-01-25 Werner Lemberg <wl@gnu.org>
949
950 * docs/release: Updated -- Savannah uses a new uploading scheme.
951
David Turnera42567b2007-01-25 12:23:37 +00009522007-01-25 David Turner <david@freetype.org>
953
Werner Lembergd7855662007-01-25 13:53:56 +0000954 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000955
Werner Lembergd7855662007-01-25 13:53:56 +0000956 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
957 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
958 functions.
David Turnera42567b2007-01-25 12:23:37 +0000959
Werner Lembergd7855662007-01-25 13:53:56 +0000960 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000961
Werner Lembergb1be9e82007-01-25 11:50:00 +00009622007-01-25 Werner Lemberg <wl@gnu.org>
963
964 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000965 correctly in a sanity check. Since this function is only used to
966 load local and global functions, any charstring that called the last
967 local/global function would fail otherwise. This fixes Savannah bug
968 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000969
970 * docs/CHANGES: Document it.
971
David Turnerb6de8d12007-01-23 15:51:50 +00009722007-01-23 David Turner <david@freetype.org>
973
Werner Lembergb1be9e82007-01-25 11:50:00 +0000974 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
975 prevented compilation when disabling both the unpatented and the
976 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000977
Werner Lembergb1be9e82007-01-25 11:50:00 +0000978
979 Fix and enable the warper to improve `light' hinting mode. This is
980 not necessarily a final version, but it seems to work well.
981
982 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
983 Disable code.
984 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
985 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
986
987 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
988 (af_warper_compute_line_best): Fix array size of `scores'.
989 (af_warper_compute): Better handling of border cases.
990 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
991 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000992
Werner Lemberg011d1112007-01-21 09:36:00 +00009932007-01-21 Werner Lemberg <wl@gnu.org>
994
Werner Lemberg42b63b22007-01-21 21:01:33 +0000995 * ChangeLog: Split off older entries into...
996 * ChangeLog.22: This new file.
997
9982007-01-21 Werner Lemberg <wl@gnu.org>
999
Werner Lemberg555258f2007-01-21 09:46:37 +00001000 * docs/CHANGES: Document SHZ fix.
1001
10022007-01-21 George Williams <gww@silcom.com>
1003
1004 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1005 points.
1006
10072007-01-21 Werner Lemberg <wl@gnu.org>
1008
Werner Lemberg011d1112007-01-21 09:36:00 +00001009 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1010 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1011
Werner Lemberg87a5a432007-01-17 12:44:39 +000010122007-01-17 Werner Lemberg <wl@gnu.org>
1013
Werner Lembergb8003292007-01-17 12:56:25 +00001014
1015 * Version 2.3.0 released.
1016 =========================
1017
1018
1019 Tag sources with `VER-2-3-0-FINAL'.
1020
10212007-01-17 Werner Lemberg <wl@gnu.org>
1022
Werner Lemberg87a5a432007-01-17 12:44:39 +00001023 * docs/release: Updated.
1024
David Turner22122722007-01-16 20:06:44 +000010252007-01-16 David Turner <david@freetype.org>
1026
Werner Lemberg87a5a432007-01-17 12:44:39 +00001027 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1028 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1029 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1030 warnings.
David Turner22122722007-01-16 20:06:44 +00001031
Werner Lemberg267e1d72007-01-15 07:48:09 +000010322007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1033
1034 * builds/amiga/makefile, builds/amiga/makefile.os4,
1035 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1036
1037 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1038
Werner Lemberg8c4120d2007-01-15 06:42:40 +000010392007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1040
1041 Fix various compiler warnings.
1042
1043 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1044 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1045 s/index/strike_index/.
1046 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1047
1048 * src/gxvalid/gxvmorx5.c
1049 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1050
1051 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1052 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1053 uninitialized variables.
1054
Werner Lemberg6164a9d2007-01-13 23:01:36 +000010552007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1056
1057 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1058
Werner Lemberg281c1482007-01-13 22:50:51 +000010592007-01-13 Werner Lemberg <wl@gnu.org>
1060
1061 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1062 versions up to 0x3FF without complaining.
1063
Werner Lembergac250b22007-01-13 14:01:36 +000010642007-01-13 Derek Clegg <dclegg@apple.com>
1065
1066 Add FT_Get_PS_Font_Info interface to CFF driver.
1067
1068 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1069 (CFF_FontRec): Add `font_info' field.
1070
1071 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1072 (cff_font_done): Free font->font_info if necessary.
1073
1074 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1075 (cff_service_ps_info): Register cff_ps_get_font_info.
1076
Werner Lemberg23df31a2007-01-13 08:45:00 +000010772007-01-13 Werner Lemberg <wl@gnu.org>
1078
1079 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1080 with C++ compiler.
1081
1082 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1083 af_glyph_hints_dump_edges): Ditto.
1084
1085 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1086 `modules.cfg').
1087
1088 * src/sfnt/ttsbit0.h: Remove.
1089
1090 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1091
Werner Lemberg27cf9de2007-01-13 07:34:23 +000010922007-01-12 David Turner <david@freetype.org>
1093
1094 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1095 bug in the bitmap emboldener if the pitch of the source bitmap is
1096 much larger than its width.
1097
1098 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1099 compilation warning.
1100
Werner Lemberg6d96d312007-01-12 10:30:19 +000011012007-01-12 Werner Lemberg <wl@gnu.org>
1102
1103 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1104 `automake' CVS module from sources.redhat.com.
1105
Werner Lemberg17432b52007-01-12 09:28:44 +000011062007-01-11 Werner Lemberg <wl@gnu.org>
1107
1108 * src/type1/t1load.c (is_space): Removed.
1109 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1110 (parse_charstrings): Use IS_PS_TOKEN.
1111
1112
1113 * autogen.sh: Avoid bash specific syntax.
1114
David Turner038ace22007-01-11 15:00:59 +000011152007-01-11 David Turner <david@freetype.org>
1116
Werner Lemberg17432b52007-01-12 09:28:44 +00001117 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001118
Werner Lemberg17432b52007-01-12 09:28:44 +00001119 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001120
Werner Lemberg17432b52007-01-12 09:28:44 +00001121 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1122 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001123 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001124
Werner Lemberg17432b52007-01-12 09:28:44 +00001125 * autogen.sh: Small fix to get it working on Mac OS X properly:
1126 The issue is that GNU libtool is called `glibtool' on this platform,
1127 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001128
David Turner2628ea92007-01-10 13:15:56 +000011292007-01-10 David Turner <david@freetype.org>
1130
Werner Lemberg17432b52007-01-12 09:28:44 +00001131 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1132 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001133
Werner Lemberg17432b52007-01-12 09:28:44 +00001134 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1135 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1136 version number to 2.3.0.
1137
1138 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1139 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001140
1141 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001142 include/freetype/ftlcdfil.h: Update reference documentation with
1143 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001144
Werner Lemberg17432b52007-01-12 09:28:44 +00001145 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1146 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001147
Werner Lembergbf02d392007-01-10 07:07:37 +000011482007-01-10 Derek Clegg <dclegg@apple.com>
1149
1150 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1151 values.
1152
David Turnerf48b60e2007-01-08 15:15:32 +000011532007-01-08 David Turner <david@freetype.org>
1154
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001155 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001156
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001157 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1158 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001159 corresponding to a given character pixel size.
1160
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001161 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1162 `gasp' table, in order to avoid potential problems with later
1163 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001164
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001165 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1166 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001167
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001168 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1169 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1170 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1171 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001172
Werner Lemberge6b6f372007-01-07 00:06:47 +000011732007-01-07 Werner Lemberg <wl@gnu.org>
1174
Werner Lembergb8004d22007-01-07 09:13:38 +00001175 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1176 Type 11 fonts.
1177 Scan for `/sfnts' token.
1178
11792007-01-07 Werner Lemberg <wl@gnu.org>
1180
1181 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001182
Werner Lembergbe5f7972007-01-06 07:51:48 +000011832007-01-06 Werner Lemberg <wl@gnu.org>
1184
1185 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1186 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1187
David Turnera8cf42b2007-01-04 16:46:46 +000011882007-01-04 David Turner <david@freetype.org>
1189
Werner Lembergf6294392007-01-06 07:47:45 +00001190 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1191 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001192
Werner Lembergf6294392007-01-06 07:47:45 +00001193
1194 Do not allocate interpreter-specific tables in memory if we are not
1195 going to load glyphs with the bytecode interpreter anyway.
1196
1197 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1198 only if glyph is hinted.
1199 Updated.
1200 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1201 and `cvs_ready'.
1202 Add `tt_size_ready_bytecode' declaration.
1203 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1204 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1205 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1206 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1207 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001208
David Turner91a34022007-01-05 14:47:08 +00001209
Werner Lembergf6294392007-01-06 07:47:45 +00001210 Don't extract the metrics table from the SFNT font file. Instead,
1211 reparse it on each glyph load. The runtime difference is not
1212 noticeable, and it can save a lot of heap memory when memory-mapped
1213 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001214
Werner Lembergf6294392007-01-06 07:47:45 +00001215 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1216 `horz_metrics_offset' and `vert_metrics_ofset'.
1217 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1218 Updated.
1219
1220
1221 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1222
1223
1224 Do not load the CFF index offsets into memory, since this wastes a
1225 *lot* of heap memory with large Asian CFF fonts. There is no
1226 significant performance loss.
1227
1228 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1229 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1230 `data_size'.
1231 (CFF_CharsetRec): Add field `num_glyphs'.
1232
1233 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1234 cff_charset_cid_to_gindex): New functions.
1235 (cff_new_index): Renamed to...
1236 (cff_index_init): This. Update all callers.
1237 Updated -- some code has been moved to `cff_index_load_offsets'.
1238 (cff_done_index): Renamed to...
1239 (cff_index_done): This. Update all callers.
1240 (cff_index_get_pointers, cff_index_access_element): Updated to use
1241 stream offsets.
1242 (cff_charset_compute_cids): Set `num_glyphs' field.
1243 (cff_encoding_load): Updated.
1244
1245 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001246
12472007-01-04 David Turner <david@freetype.org>
1248
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001249 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1250 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001251
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001252 * README.CVS: Add common problem description and solution
1253 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001254
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001255 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001256
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001257 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001258
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001259 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001260
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001261 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1262 (TWorker): This.
1263 Remove `count_table' and `memory'.
1264 Make `grays' a pointer.
1265 (TRaster): New structure.
1266 (count_table): New static array.
1267 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1268 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1269 ft_black_set_mode, ft_black_render): Updated.
1270 (ft_black_init): Don't initialize `count_table'.
1271 (ft_black_reset): Use the render pool. This saves about 6KB of
1272 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001273
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001274 * src/smooth/ftgrays.c (TRaster): Replaced with...
1275 (TWorker): This.
1276 Remove `memory'.
1277 (TRaster): New structure.
1278
1279 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1280 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1281 gray_render_span, gray_raster_render): Updated.
1282 (gray_raster_reset): Use the render pool. This saves about 6KB of
1283 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001284
David Turner8a6c44e2007-01-04 17:03:11 +00001285 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1286 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001287 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1288 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1289 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001290
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001291 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1292 Remove a typo that results in no hinting and a memory leak with some
1293 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001294
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001295 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001296 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001297 CFF_Faces in it. We need to close all faces before destroying the
1298 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001299
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000013002007-01-02 Werner Lemberg <wl@gnu.org>
1301
1302 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1303 Remove compiler warning.
1304
David Turner9207e002007-01-02 16:58:13 +000013052007-01-02 David Turner <david@freetype.org>
1306
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001307 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001308
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000013092006-12-31 Masatake YAMATO <jet@gyve.org>
1310
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001311 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1312 function.
1313 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001314 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001315 `gxv_kern_subtable_fmt0_pairs_validate'.
1316
David Turner115b4422006-12-22 11:37:05 +000013172006-12-22 David Turner <david@freetype.org>
1318
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001319 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1320 warnings.
David Turner115b4422006-12-22 11:37:05 +00001321
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001322 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1323 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001324
Werner Lemberg4755bf72006-12-16 08:58:44 +000013252006-12-16 Anders Kaseorg <anders@kaseorg.com>
1326
1327 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1328 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1329
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000013302006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1331
Werner Lemberg9b774e22007-01-16 06:11:27 +00001332 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001333 sync with the modification by Jens Claudius on 2006-08-22; cf.
1334 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 +00001335
13362006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1337
1338 * src/base/ftmac.c: Specialized for Mac OS X only.
1339 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1340 * builds/unix/configure.raw: Ditto. When explicit switches for
1341 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1342 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1343
13442006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1345
1346 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1347 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1348 instead of src/base/ftmac.c
1349 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1350 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1351 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1352 that cannot be built at present.
1353
13542006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1355
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001356 * src/base/ftobjs.c: Improvement of resource fork handler for
1357 POSIX, cf.
1358 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001359 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1360 format or .dfont, to simulate the face index number counted by ftmac.c.
1361 (IsMacResource): Return the number of scalable faces correctly.
1362
Werner Lembergec5b4502006-12-10 07:51:38 +000013632006-12-10 Werner Lemberg <wl@gnu.org>
1364
1365 * builds/toplevel.mk (version): Protect against `distclean' target.
1366
Werner Lembergb26b3142006-12-09 20:01:43 +000013672006-12-09 Werner Lemberg <wl@gnu.org>
1368
1369 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1370 or `type'.
1371
1372 * builds/freetype.mk (version): Extracted from freetype.h, using
1373 GNU make's built-in string functions.
1374 (refdoc): Use $(version) instead of static version number.
1375
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000013762006-12-08 Werner Lemberg <wl@gnu.org>
1377
1378 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1379
Werner Lemberg15c29502006-12-09 07:29:54 +000013802006-12-08 Vladimir Volovich <vvv@vsu.ru>
1381
1382 * src/tools/apinames (State): Remove final comma in structure -- xlc
1383 v5 under AIX 4.3 doesn't like this.
1384
David Turnerdbf3b432006-12-07 21:18:09 +000013852006-12-07 David Turner <david@freetype.org>
1386
Werner Lemberg256a3512006-12-08 06:49:33 +00001387 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1388 to the spacing of auto-fitted glyphs. This only impacts rare
1389 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001390
Werner Lemberg11171312006-12-03 09:43:40 +000013912006-12-03 Werner Lemberg <wl@gnu.org>
1392
1393 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1394
Werner Lemberg960ba592006-12-01 08:20:47 +000013952006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001396
Werner Lemberg960ba592006-12-01 08:20:47 +00001397 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1398 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1399 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001400
David Turner80658e52006-11-28 08:09:20 +00001401
Werner Lemberg960ba592006-12-01 08:20:47 +00001402 * include/freetype/ftxf86.h: Fix and extend comment so that it
1403 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001404
Werner Lemberg960ba592006-12-01 08:20:47 +00001405 * include/freetype/ftchapters.h: Add `font_format' section.
1406
1407
1408 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1409 to TOC in index page.
1410
14112006-11-28 David Turner <david@freetype.org>
1412
1413 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1414 trying to render into a zero-width/height bitmap, not an error code.
1415
1416 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1417
1418 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1419 ones instead.
1420
1421 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1422 variable.
David Turner80658e52006-11-28 08:09:20 +00001423
Werner Lemberg8636c292006-11-26 22:28:13 +000014242006-11-26 Pierre Hanser <hanser@club-internet.fr>
1425
1426 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1427
Werner Lemberg960ba592006-12-01 08:20:47 +000014282006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001429
Werner Lemberg960ba592006-12-01 08:20:47 +00001430 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1431 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1432 Add stubs to link the `ftgrid' test program when debugging is
1433 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001434
Werner Lemberg960ba592006-12-01 08:20:47 +000014352006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001436
1437 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001438 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1439
1440 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1441 Emit more sensible information.
1442
1443 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1444
1445 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1446 rounding of blue values.
1447 (af_latin_hints_compute_segments): Hint segment heights.
1448 (af_latin_hints_link_segments): Reduce `len_score' value.
1449 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1450 value and use `height' member for comparisons.
1451 (af_latin_hint_edges): Extend logging message.
1452 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001453
Werner Lemberg91959bf2006-11-22 10:36:55 +000014542006-11-22 Werner Lemberg <wl@gnu.org>
1455
1456 Fix Savannah bug #15553.
1457
1458 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1459 program after a change from mono to grayscaling (and vice versa).
1460 Use correct constant for comparison to get `exec->grayscale'.
1461
Werner Lemberg913a3652006-11-19 09:19:17 +000014622006-11-18 Werner Lemberg <wl@gnu.org>
1463
1464 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001465 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001466 This patch fixes Savannah bug #18301.
1467
1468 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1469 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1470 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1471 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1472 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1473 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1474 (FNT_Load_Glyph): Check validity of `glyph_index'.
1475
David Turner7bab6ae2006-11-13 11:25:06 +000014762006-11-13 David Turner <david@freetype.org>
1477
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001478 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1479 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001480
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001481 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1482 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1483 when building the library to change the default LCD filter to be
1484 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001485
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001486 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001487
David Turner8765c712006-11-10 16:49:42 +000014882006-11-10 David Turner <david@freetype.org>
1489
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001490 * src/smooth/ftsmooth.c: API change for the LCD
1491 filter. The FT_LcdFilter value is an enumeration describing which
1492 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1493 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1494 algorithm which produces strong color fringes for everything
1495 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001496
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001497 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1498 second parameter to an enum type.
1499
1500 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1501 (_ft_lcd_filter): Rename to...
1502 (_ft_lcd_filter_fir): This.
1503 Update parameters.
1504 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1505 (FT_Library_Set_LcdFilter): Update parameters.
1506 Handle new filter modes.
1507
1508 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1509 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1510 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1511 callback and update other fields.
1512
1513 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1514 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1515 Other minor improvements.
1516
1517 * src/autofit/aflatin.c: Various tiny improvements that drastically
1518 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1519 (af_latin_hints_compute_edges): Fix typo.
1520 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001521
David Turner4e9cc3c2006-11-09 16:31:52 +000015222006-11-09 David Turner <david@freetype.org>
1523
Werner Lemberg49c77a82006-11-09 21:51:57 +00001524 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1525 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001526
Werner Lemberg5e430892006-11-07 09:35:03 +000015272006-11-07 Zhe Su <james.su@gmail.com>
1528
1529 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1530 also.
1531
Werner Lemberg111b5ae2006-11-03 09:40:12 +000015322006-11-03 Werner Lemberg <wl@gnu.org>
1533
1534 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1535
David Turner40604742006-11-02 16:37:35 +000015362006-11-02 David Turner <david@freetype.org>
1537
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001538 Add a few tweaks to better handle serif fonts.
1539 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001540
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001541 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1542 segments that are less than 1.5 pixels high. This gets rid of
1543 *many* corner cases with serifs.
1544 (af_latin_align_linked_edge): Add logging message.
1545 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1546 Add logging messages.
1547 Handle AF_EDGE_FLAG flag specially.
1548
1549 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1550 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1551
1552 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1553 Update external declarations.
1554 (af_corner_orientation, af_corner_is_flat): Replaced by...
1555
1556 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1557 ft_corner_is_flat): These declarations.
1558
1559 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1560 Comment out. Replaced by...
1561
1562 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1563 These functions. Update all callers.
1564 (FT_Add64) [!FT_LONG64]: Simplify.
1565
1566 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1567 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1568 production of garbage by missing lots of segments.
1569
1570 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1571
1572 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1573 [AF_DEBUG]: Set _af_debug_hints.
1574
1575
1576 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1577 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1578 and ft_corner_orientation.
1579
1580
1581 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001582
Werner Lemberge88c5262006-10-24 05:46:26 +000015832006-10-24 Werner Lemberg <wl@gnu.org>
1584
1585 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1586
1587 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1588 as argument.
1589
David Turnera1861392006-10-23 16:00:59 +000015902006-10-23 Zhe Su <zsu@novell.com>
1591
Werner Lemberg715e96e2006-10-24 05:28:45 +00001592 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1593 better deal with broken Asian fonts with strange glyphs, having
1594 self-intersections and other peculiarities. The used algorithm is
1595 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001596
David Turnere140f142006-10-23 08:56:57 +000015972006-10-23 David Turner <david@freetype.org>
1598
Werner Lemberg715e96e2006-10-24 05:28:45 +00001599 Speed up the CFF font loader. With some large CFF fonts,
1600 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001601
Werner Lemberg715e96e2006-10-24 05:28:45 +00001602 * src/cff/cffload.c (cff_get_offset): Removed.
1603 (cff_new_index): Inline functionality of `cff_get_offset'.
1604 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1605 (cff_charset_done): Call `cff_charset_free_cids'.
1606 (cff_charset_load): Call `cff_charset_compute_cids'.
1607 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1608
1609 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1610 with FT_NEXT_XXX.
1611
1612
1613 Speed up the Postscript hinter, with more than 100% speed increase
1614 on my machine.
1615
1616 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1617 psh_corner_orientation): New functions.
1618 (psh_glyph_compute_inflections): Merge loops for efficiency.
1619 Use `psh_corner_orientation'.
1620 (psh_glyph_init): Use `psh_corner_is_flat'.
1621 (psh_hint_table_find_strong_point): Renamed to...
1622 (psh_hint_table_find_strong_points): This.
1623 Rewrite, adding argument to handle all points at once.
1624 Update all callers.
1625 (PSH_MAX_STRONG_INTERNAL): New macro.
1626 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001627
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000016282006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1629
1630 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001631 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001632
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000016332006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1634
1635 * docs/INSTALL.CROSS: New document file for cross-building.
1636
1637 * builds/unix/configure.raw: Preliminary cross-building support.
1638 Find native C compiler and pass it by CC_BUILD, and
1639 find suffix for native executable and pass it by EXEEXT_BUILD.
1640 Also suffix for target executable is passed by EXEEXT.
1641
Werner Lembergb9e6d692006-10-15 08:58:40 +00001642 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1643 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001644 CC_BUILD and EXEEXT_BUILD.
1645
Werner Lembergb9e6d692006-10-15 08:58:40 +00001646 * builds/exports.mk (APINAMES_EXE): Change the extension for
1647 apinames from the suffix for target (E) to that for building host
1648 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001649
Werner Lemberg82a07e92006-10-12 06:20:44 +000016502006-10-12 Werner Lemberg <wl@gnu.org>
1651
1652 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1653 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1654 which reference those files.
1655
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000016562006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1657
Werner Lembergb9e6d692006-10-15 08:58:40 +00001658 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1659 embedded in freetype2.pc and freetype-config. Use it to record
1660 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001661
1662 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1663
1664 * builds/unix/freetype-config.in: Ditto.
1665
Werner Lemberg28e17d92006-10-11 17:27:47 +000016662006-10-11 Werner Lemberg <wl@gnu.org>
1667
1668 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1669 development.
1670
Jens Claudius336d2292006-10-03 08:53:37 +000016712006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1672
1673 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1674 argument to ft_setjmp.
1675
1676 * include/freetype/internal/ftvalid.h: Add comment that
1677 ft_validator_run must not be used.
1678
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016792006-10-01 Werner Lemberg <wl@gnu.org>
1680
1681 * src/base/ftbase.c: Undo change from 2006-09-30.
1682
1683 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1684
16852006-09-30 David Turner <david@freetype.org>
1686
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001687 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1688 s/unpatented_hinting/ignore_unpatented_hinter/.
1689 Update all callers.
1690
1691 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1692 auto-hinting shall be used or not.
1693
1694 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001695
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016962006-09-30 Werner Lemberg <wl@gnu.org>
1697
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001698 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1699 in use).
1700
1701 * src/base/ftbase.c: Include `ftlcdfil.c'.
1702
Werner Lemberg9b15ea32006-09-29 18:22:11 +000017032006-09-29 Werner Lemberg <wl@gnu.org>
1704
1705 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1706 overlapping segments. Bug reported by Stefan Koch.
1707
David Turnerad830712006-09-27 16:20:59 +000017082006-09-28 David Turner <david@freetype.org>
1709
Werner Lemberg2c002e12006-09-29 21:31:53 +00001710 Fix a bug in the automatic unpatented hinting support which prevents
1711 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001712
Werner Lemberg2c002e12006-09-29 21:31:53 +00001713 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1714 s/force_autohint/unpatented_hinting/. Update all callers.
1715
1716 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1717
1718 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001719
David Turner8a317cf2006-09-27 07:52:48 +000017202006-09-27 David Turner <david@freetype.org>
1721
Werner Lemberg2c002e12006-09-29 21:31:53 +00001722 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001723
David Turner8a317cf2006-09-27 07:52:48 +00001724
David Turnere140f142006-10-23 08:56:57 +00001725 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001726 In a default build, the function `FT_Library_SetLcdFilter' returns
1727 `FT_Err_Unimplemented_Feature'; you need to #define
1728 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1729 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001730
Werner Lemberg2c002e12006-09-29 21:31:53 +00001731 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001732
Werner Lemberg2c002e12006-09-29 21:31:53 +00001733 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1734 typedef.
1735 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1736 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001737
Werner Lemberg2c002e12006-09-29 21:31:53 +00001738 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1739 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001740
Werner Lemberg2c002e12006-09-29 21:31:53 +00001741 Handle subpixel rendering.
1742 Simplify function.
1743 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1744 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1745
1746 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1747 pointing to <freetype/ftlcdfil.h>.
1748
1749 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1750 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1751
1752 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001753
Werner Lemberge20df4a2006-09-27 06:29:21 +000017542006-09-26 David Bustin
1755
1756 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1757 correctly. Reported as Savannah bug #17843.
1758
David Turner6f8c6222006-09-26 15:42:44 +000017592006-09-26 David Turner <david@freetype.org>
1760
Werner Lemberg110246c2006-09-26 21:55:44 +00001761 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1762 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1763 horizontal and vertical hinting for the purpose of debugging the
1764 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001765
Werner Lemberg110246c2006-09-26 21:55:44 +00001766 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1767 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001768
Werner Lemberg110246c2006-09-26 21:55:44 +00001769 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1770
1771 * include/freetype/config/ftoption.h, devel/ftoption.h
1772 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1773 we want to compile LCD-optimized rendering code (à la ClearType) or
1774 not. The macro *must* be disabled in default builds of the library
1775 for patent reasons.
1776
1777 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1778 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1779 isn't defined at compile time. This only changes the content of the
1780 rendered glyph to match the one of normal gray-level rendering,
1781 hence clients should not need to be modified.
1782
1783 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001784
Werner Lemberg745ff2c2006-09-19 05:48:02 +000017852006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1786
1787 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1788 LWFN fails and both are available.
1789
David Turnerf3050052006-09-11 12:00:32 +000017902006-09-11 David Turner <david@freetype.org>
1791
Werner Lembergf9644552006-09-12 13:48:10 +00001792 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1793 report their English names through an Apple Roman
1794 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001795
Werner Lembergf9644552006-09-12 13:48:10 +00001796 If the font uses another name entry with language_id == English, it
1797 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001798
Werner Lembergf9644552006-09-12 13:48:10 +00001799 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1800 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001801
Werner Lemberg36d2eab2006-09-05 19:24:34 +000018022006-09-05 Werner Lemberg <wl@gnu.org>
1803
1804 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001805 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001806 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1807 `HAN NOM B.ttf').
1808
1809 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1810
David Turner772e55d2006-09-05 09:45:15 +000018112006-09-05 David Turner <david@freetype.org>
1812
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001813 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001814
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001815 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1816 (TRaster): Remove `count_ex' and `count_ey'.
1817 (gray_find_cell): Remove 2nd and 3rd argument.
1818 (gray_alloc_cell): Merged with `gray_find_cell'.
1819 (gray_record_cell): Simplify.
1820 (gray_set_cell): Rewrite.
1821 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1822 (gray_render_span): Don't use FT_MEM_SET for small values.
1823 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1824 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1825 bitmap scanline.
1826 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001827
David Turneraa557a92006-09-04 16:42:44 +000018282006-09-04 David Turner <david@freetype.org>
1829
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001830 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1831 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001832
Werner Lemberg2d8629b2006-09-03 06:18:45 +000018332006-09-03 Werner Lemberg <wl@gnu.org>
1834
1835 * devel/ftoption.h: Synchronize with
1836 include/freetype/config/ftoption.h.
1837
1838 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1839 variable declaration.
1840 (gray_convert_glyph): Fix compiler warnings.
1841
David Turner6d79f212006-09-01 14:09:35 +000018422006-09-01 David Turner <david@freetype.org>
1843
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001844 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1845 to recognize a few fonts that require the automatic unpatented
1846 loader.
David Turnerbd502952006-09-01 19:05:24 +00001847
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001848 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1849 rasterizer. The speed improvement is between 15% and 25%, depending
1850 on the font data.
1851
1852 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1853 (TCell): Redefine.
1854 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1855 (gray_init_cells): Updated.
1856 (gray_find_cell, gray_alloc_cell): New functions.
1857 (gray_record_cell): Rewritten to use `gray_find_cell' and
1858 `gray_alloc_cell'.
1859 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1860 QSORT_THRESHOLD):
1861 Removed.
1862 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1863 gray_dump_cells): Removed.
1864 (gray_sweep): Rewritten.
1865 (gray_convert_glyph): Rewrite code which used one of the sorting
1866 functions.
1867 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001868
Werner Lembergd898aed2006-08-29 09:50:34 +000018692006-08-29 Dr. Werner Fink <werner@suse.de>
1870
1871 * configure: Make it possible to handle configure options which
1872 have strings containing spaces.
1873
18742006-08-27 David Turner <david@freetype.org>
1875
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001876 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1877 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1878 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1879
1880 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1881 src/truetype/truetype.c, src/truetype/ttdriver.c,
1882 src/truetype/ttgload.c, src/truetype/ttgload.h,
1883 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1884 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1885 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1886
1887 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1888 member `force_autohint'.
1889
1890 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1891
1892 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1893 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001894
Jens Claudiusa787f452006-08-27 11:26:18 +000018952006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1896
1897 Fix miscellaneous compiler warnings.
1898
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001899 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1900 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001901
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001902 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1903 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1904 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001905
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001906 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1907 volatileness of argument to ft_longjmp. Spotted by Werner
1908 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001909
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001910 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1911 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001912
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001913 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1914 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001915
Werner Lembergc4c35b72006-08-27 08:03:46 +000019162006-08-27 Werner Lemberg <wl@gnu.org>
1917
1918 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1919 Reported by Jens.
1920
Jens Claudius088e44e2006-08-22 14:24:30 +000019212006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001922
Jens Claudius088e44e2006-08-22 14:24:30 +00001923 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001924 about addresses of volatile objects passed as function arguments as
1925 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001926
Werner Lembergc4c35b72006-08-27 08:03:46 +00001927 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1928 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001929
1930 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1931 argument `table' a pointer to a volatile object.
1932
1933 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1934 argument `table' a pointer to a volatile object.
1935
Jens Claudius2652bd52006-08-18 17:20:37 +000019362006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1937
1938 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1939 variable `_sfnt' as volatile since it must keep its value across
1940 a call to ft_setjmp.
1941 (gxv_validate): Same for local variables `memory' and `valid'.
1942 (classic_kern_validate): Same for local variables `memory',
1943 `ckern', and `valid'.
1944
1945 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1946 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1947 `jstf', and 'valid'.
1948
1949 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1950 local variable `cmap'.
1951
David Turner9fbfc6a2006-08-16 09:11:31 +000019522006-08-16 David Turner <david@freetype.org>
1953
Werner Lemberg12342992006-08-19 11:18:09 +00001954 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1955 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001956
Werner Lemberg12342992006-08-19 11:18:09 +00001957 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1958 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001959
David Turner33f5f242006-08-16 16:50:55 +00001960
Werner Lemberg12342992006-08-19 11:18:09 +00001961 Improvements to native TrueType hinting. This is a first try,
1962 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1963
1964 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1965 `extra_points2'.
1966
1967 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1968 `orus'.
1969
1970 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1971 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1972 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1973 handle `extra_points2'.
1974
1975 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1976 Remove compiler warning.
1977 (cur_to_arg): Remove macro.
1978 (TT_Hint_Glyph): Updated.
1979 (TT_Process_Simple_Glyph): Handle `orus'.
1980
1981 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1982 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1983 (LOC_Ins_IUP): Renamed to...
1984 (IUP_WorkerRec): This.
1985 Add `orus' member.
1986 (Shift): Renamed to...
1987 (_iup_worker_shift): This.
1988 Updated.
1989 (Interp): Renamed to...
1990 (_iup_worker_interpolate): This.
1991 Updated to handle `orus'.
1992 (Ins_IUP): Updated.
1993
1994 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1995 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001996
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000019972006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1998
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001999 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00002000 build ftvalid in ft2demos. This has been inadvertedly changed
2001 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002002
20032006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2004
Werner Lemberg12342992006-08-19 11:18:09 +00002005 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2006 Jens:
2007 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002008
Werner Lemberg12342992006-08-19 11:18:09 +00002009 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2010 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002011
2012 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2013
Jens Claudius9950adc2006-08-13 12:14:36 +000020142006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2015
Werner Lemberg12342992006-08-19 11:18:09 +00002016 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2017 T1_TOKEN_TYPE_KEY.
2018 (T1_FieldRec): Add `dict'.
2019 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2020 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2021 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002022
Werner Lemberg12342992006-08-19 11:18:09 +00002023 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2024 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002025
2026 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2027
2028 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002029 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2030 not T1_TOKEN_TYPE_ANY.
2031 (ps_parser_load_field): Make sure a token that should be a string or
2032 name is really a string or name.
2033 Avoid memory leak if a keyword has been already encountered and its
2034 value is overwritten.
2035 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2036 T1_FIELD_XXX.
2037 (parse_dict): Ignore keywords that occur in the wrong dictionary
2038 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002039
Werner Lemberg12342992006-08-19 11:18:09 +00002040 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2041 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002042
Werner Lemberg12342992006-08-19 11:18:09 +00002043 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2044 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002045
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000020462006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2047
2048 Move creation of field `buildchar' of T1_DecoderRec out of
2049 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2050 of it.
2051
2052 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2053 and `T1_Compute_Max_Advance'.
2054
2055 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2056 Remove field `face', add `len_buildchar'.
2057
2058 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2059 field `buildchar'.
2060
2061 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2062 finisher for T1_Decoder.
2063 (cid_slot_load_glyph): Do not ignore failure when initializing the
2064 T1_Decoder.
2065
2066 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2067 Updated.
2068 (t1_decoder_init): Remove initialization of fields `buildchar' and
2069 `len_buildchar'.
2070 (t1_decoder_done): Remove deallocation of field `buildchar'.
2071
2072 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2073 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2074 T1_Decoder.
2075 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2076 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2077 case of error.
2078
2079 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2080 `buildchar' of T1_FaceRec.
2081
2082 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2083 `buildchar' of T1_FaceRec.
2084
Werner Lemberg1a380e02006-07-14 18:28:08 +000020852006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2086
2087 * freetype2/include/freetype/internal/psaux.h: New macros
2088 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2089 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2090 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2091 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2092 (T1_DecoderRec): New fields `buildchar' and `face'.
2093 (IS_PS_TOKEN): New macro.
2094
2095 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2096 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2097
2098 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2099 `default_design_vector' and `num_default_design_vector'.
2100
2101 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2102 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2103 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2104
2105 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2106 `token' argument to be NULL if we want only to count the number of
2107 tokens.
2108 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2109 want to skip the array.
2110 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2111 want to skip the array.
2112
2113 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2114 support for (partially commented out) othersubrs 19-25, 27, and 28.
2115 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2116 (t1_decoder_done): Release new field `buildchar'.
2117
2118 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2119 functions.
2120 (t1_keywords): Register them.
2121 (t1_allocate_blend): Updated.
2122 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2123 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2124 (parse_dict): Remove `keyword_flags' argument.
2125 Use new macro IS_PS_TOKEN.
2126 Changed function so that later PostScript definitions override
2127 earlier ones.
2128 (t1_init_loader): Initialize new field `keywords_encountered'.
2129 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2130 `len_buildchar'.
2131 Remove `keywords_flags'.
2132
2133 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2134 `keywords_encountered'.
2135 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2136
2137 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2138 New entries for parsing /NDV, /CDV, and /DesignVector.
2139
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000021402006-07-07 Werner Lemberg <wl@gnu.org>
2141
2142 Add many checks to protect against malformed PCF files.
2143
2144 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2145 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2146
2147 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2148 data and check that tables don't overlap (using a simple
2149 bubblesort).
2150 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2151 New macros which give the size of data structures in the data
2152 stream.
2153 (pcf_get_properties): Use rough estimates to get array size limits.
2154 Assign `face->nprops' and `face->properties' earlier so that a call
2155 to PCF_Face_Done can do the clean-up in case of error.
2156 Protect against invalid string offsets.
2157 (pcf_get_metrics): Clean up code.
2158 Adjust tracing message levels.
2159 Use rough estimate to get array size limit.
2160 (pcf_get_bitmaps): Clean up code.
2161 Adjust tracing message levels.
2162 Use rough estimates to get offset limits.
2163 (pcf_get_encodings): Adjust tracing message level.
2164 (pcf_get_accel): Clean up code.
2165
Werner Lemberg8eb05252006-06-27 06:20:01 +000021662006-06-26 Werner Lemberg <wl@gnu.org>
2167
2168 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2169 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2170
Werner Lemberg24703f82006-06-26 19:12:51 +000021712006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2172
2173 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2174 (t1_decoder_parse_charstrings): Operator with
2175 opcode 15 pops its two arguments.
2176 Handle the case where the pops of an othersubr may be part of a
2177 subroutine.
2178 Handle unknown othersubrs gracefully: count their operands and let
2179 the following pop operators push the operands as the results onto
2180 the Type1 stack.
2181 Improve handling of setcurrentpoint opcode.
2182
Werner Lembergc011f4c2006-06-26 09:40:00 +000021832006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2184
2185 The Type 1 parser now skips over top-level procedures as required
2186 for a `Simplified Parser'. This makes the parser more robust as it
2187 doesn't poke around in PostScript code. Additionally, it makes the
2188 FontDirectory hackery in src/type1/t1load.c unnecessary.
2189
2190 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2191 (skip_literal_string): Add FT_Error as return value.
2192 Handle escapes better.
2193 (skip_string): Add FT_Error as return value.
2194 Don't set `parser->error' but return error code directly.
2195 (skip_procedure): New function.
2196 (ps_parser_skip_PS_token): Handle procedures.
2197 Update code.
2198 (ps_parser_to_token): Update code.
2199 (ps_parser_load_field_table): Handle bbox entries also.
2200
2201 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2202 Add commented-out code for synthetic fonts.
2203
Werner Lemberga2da05c2006-06-25 06:27:27 +000022042006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2205
2206 Fix two hinting bugs as reported in
2207 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2208
2209 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2210 `first_point' member.
2211
2212 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2213 `first_point'.
2214 (TT_Process_Composite_Glyph): Always untouch points.
2215
2216 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2217 `first_point' and `last_point' in case of composite glyphs.
2218 (Ins_IUP): Fix computation of `end_point'.
2219
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000022202006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2221
Werner Lembergef3d2c22006-06-25 06:07:14 +00002222 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2223 Mac. The original patch was written by David Sachitano and Lawrence
2224 Coopet, and modified by Sean McBride for MPW compatibility. Only
2225 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002226
Werner Lembergef3d2c22006-06-25 06:07:14 +00002227 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2228 Mac OS X platforms.
2229 (OS_INLINE): Undefine before definition.
2230 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2231 FontAssociation table in FOND resource.
2232 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2233 and fontSize at each entry of FontAssociation table in FOND
2234 resource.
2235 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2236 ffStylOff of FamilyRecord header of FOND resource, the header,
2237 fontSize, fontID at each entry of FontAssociation table, and
2238 StyleMapping table.
2239 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002240
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000022412006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2242
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002243 Public API of TrueTypeGX, OpenType, and classic kern table validator
2244 should return `FT_Err_Unimplemented_Feature' if validation service
2245 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002246 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002247 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2248
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002249 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2250 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2251 unavailable.
2252 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2253 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002254
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002255 * src/base/ftotval.c (FT_OpenType_Validate): Return
2256 FT_Err_Unimplemented_Feature if OpenType validation service is
2257 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002258
Werner Lembergb10e45a2006-06-08 07:32:56 +000022592006-06-08 Werner Lemberg <wl@gnu.org>
2260
2261 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2262 errors.
2263
David Turner5f1f7502006-06-07 05:11:50 +000022642006-06-07 David Turner <david@freetype.org>
2265
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002266 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2267 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2268 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002269
David Turner457b4a82006-06-06 08:14:14 +000022702006-06-06 David Turner <david@freetype.org>
2271
Werner Lemberg4836f952006-06-06 12:54:08 +00002272 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002273
Werner Lemberg4836f952006-06-06 12:54:08 +00002274 We change `ps_unicodes_init' so that it also takes a
2275 `free_glyph_name' callback to release the glyph names returned by
2276 `get_glyph_name'
2277
2278 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2279 Renamed to ...
2280 (PS_GetGlyphNameFunc): This.
2281 (PS_FreeGlyphNameFunc): New typedef.
2282 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2283
2284 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2285 argument.
2286 (cff_sid_free_glyph_name): New function.
2287 (cff_cmap_unicode_init): Updated.
2288
2289 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2290
2291 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2292 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002293
2294
David Turner09717352006-06-04 14:33:08 +000022952006-06-04 David Turner <david@freetype.org>
2296
Werner Lembergd724f202006-06-04 15:17:41 +00002297 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2298 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002299 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002300
Werner Lembergd724f202006-06-04 15:17:41 +00002301 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2302 of `face->num_glyphs' which missed the last glyph, due to
2303 the offset-by-1 computation, since the PFR format doesn't
2304 guarantee that glyph index 0 corresponds to the `missing
2305 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002306
Werner Lemberg33779662006-05-26 06:30:05 +000023072006-05-25 Werner Lemberg <wl@gnu.org>
2308
2309 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2310 `-no-undefined'. Reported by Christian Biesinger.
2311
Werner Lemberg24773d62006-05-20 08:53:13 +000023122006-05-19 Brian Weed <bw@imaginengine.com>
2313
2314 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2315 have debug information, and debug libraries use `C7 compatible'
2316 debug info.
2317
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000023182006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2319
Werner Lemberga6523a62006-05-20 08:47:01 +00002320 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002321 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002322
Werner Lemberga6523a62006-05-20 08:47:01 +00002323 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2324 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002325
2326 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002327 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002328
23292006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2330
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002331 * build/unix/configure.raw: Add a fallback to disable Carbon
2332 dependency, if configured with no options on Mac OS X.
2333
23342006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2335
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002336 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002337 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002338 the second part of Savannah bug #16590.
2339
Werner Lemberg545c4e52006-05-17 22:55:04 +000023402006-05-18 Werner Lemberg <wl@gnu.org>
2341
2342 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2343 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2344
David Turnerdc3ff312006-05-17 12:59:35 +000023452006-05-17 David Turner <david@freetype.org>
2346
Werner Lemberg545c4e52006-05-17 22:55:04 +00002347 This is a major patch used to drastically improve the performance of
2348 loading glyphs. This both speeds up loading the glyph vectors
2349 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002350
Werner Lemberg545c4e52006-05-17 22:55:04 +00002351 We now use inline assembler code with GCC to implement `FT_MulFix',
2352 which is probably the most important function related to the
2353 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002354
Werner Lemberg545c4e52006-05-17 22:55:04 +00002355 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002356
2357
Werner Lemberg545c4e52006-05-17 22:55:04 +00002358 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2359 `cursor' and `limit'.
2360
2361 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2362 New functions.
2363 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2364 [TEST]: Remove.
2365
2366 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2367 code.
2368
2369 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2370 `FT_ZERO'
2371 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2372 (af_glyph_hints_reload: Rewrite recognition of weak points.
2373
2374 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2375 constant values out of the loops.
2376
2377 * src/autofit/aftypes.h: Updated.
2378
2379 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2380
2381 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2382 product to get orientation.
2383
2384 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2385 (FT_Stream_OpenGzip): Use it to handle small files directly in
2386 memory.
2387
2388 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2389 Improve performance.
2390
2391 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2392 `limit'.
2393
2394 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2395 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2396 exceedingly large values of number of contours. Speed up by
2397 reducing the number of loops.
2398
2399 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2400
2401
2402 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2403 used to detect rogue clients from 4 to 16. This is to prevent some
2404 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2405 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002406
Werner Lembergde2d90a2006-05-17 08:54:30 +000024072007-05-17 Werner Lemberg <wl@gnu.org>
2408
2409 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002410 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002411
24122006-05-16 Werner Lemberg <wl@gnu.org>
2413
2414 * docs/PROBLEMS: Updated icl issues.
2415
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002416----------------------------------------------------------------------------
2417
Werner Lemberg42b63b22007-01-21 21:01:33 +00002418Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002419David Turner, Robert Wilhelm, and Werner Lemberg.
2420
2421This file is part of the FreeType project, and may only be used, modified,
2422and distributed under the terms of the FreeType project license,
2423LICENSE.TXT. By continuing to use, modify, or distribute this file you
2424indicate that you have read the license and understand and accept it
2425fully.
2426
2427
2428Local Variables:
2429version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002430coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002431End: