blob: 20d4807f7a3b049dd2aae0eec52cce0bf6fb00ad [file] [log] [blame]
David Turner74cc0e92007-06-30 22:54:12 +000012007-06-30 David Turner <david@freetype.org>
2
3 * src/truetype/ttinterp.c: add missing variable initialization,
4 gets rid of Valgrind fixes.
5
6 * src/autofit/aflatin.c: get rid of an infinite loop in the case
7 of degenerate fonts.
8
Werner Lemberg7723dc32007-06-26 04:44:35 +000092007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
10
11 Add autofit module for Indic scripts. This currently just reuses
12 the CJK-specific functions.
13
14 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
15 macro.
16 * devel/ftoption.h: Synchronize with
17 include/freetype/config/ftoption.h.
18
19 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
20
21 * src/autofit/afglobal.c, src/autofit/aftypes.h,
22 src/autofit/autofit.c: Updated.
23
24 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
25 (AUTOF_DRV_SRC): Updated.
26
David Turner8f626b02007-06-22 22:22:38 +0000272007-06-23 David Turner <david@freetype.org>
28
Werner Lemberg7854c4a2007-06-23 07:16:20 +000029 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
30 2007-06-16 that prevented the TrueType module from loading most
31 glyphs.
David Turner8f626b02007-06-22 22:22:38 +000032
Werner Lemberg5b4d4352007-06-20 07:07:55 +0000332007-06-20 Werner Lemberg <wl@gnu.org>
34
35 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
36 change.
37
Werner Lemberg9fe58152007-06-19 07:57:30 +0000382007-06-19 Werner Lemberg <wl@gnu.org>
39
40 * src/type1/t1load.c (parse_encoding): Handle one more error.
41
Werner Lemberg5a829392007-06-19 04:53:30 +0000422007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
43
44 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
45 FNT_Err_Invalid_File_Format if file format was recognized but
46 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
47 Add verbose debug logs to make it easier to debug failing load
48 attempts.
49 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
50 so return an error if requested face index is > 0.
51 Do not do further attempt to load fonts if a previous attempt has
52 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
53 file format has been recognized but no fonts found in the file.
54
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000552007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
56
57 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
58 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
59 the compiler warnings against unused arguments.
60 (FT_ATSFontGetFileReference): Ditto.
61 (FT_GetFile_From_Mac_ATS_Name): Ditto.
62 (FT_New_Face_From_FSSpec): Ditto.
63 (lookup_lwfn_by_fond): Fix wrong comment.
64 Replace `const StringPtr' by more appropriate type
65 `ConstStr255Param'.
66 FSRefMakePathPath always returns UTF8 POSIX pathname in
67 Mach-O, thus HFS pathname support is dropped.
68 (count_faces): Remove HLock and HUnlock which is not
69 required on Mac OS X anymore.
70 (FT_New_Face_From_SFNT): Ditto.
71 (FT_New_Face_From_FOND): Ditto.
72 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
73 except of HFS pathname support and HLock/HUnlock.
74 They are required on classic CFM environment.
75
762007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +000077
Werner Lembergf9fa1c82007-06-18 17:00:05 +000078 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
79 assertion.
80 (ps_parser_to_bytes): Fix error message.
81
Werner Lembergbb2510d2007-06-18 17:07:49 +000082 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000083 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
84 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +000085 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +000086 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000087
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000882007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +000089
Werner Lembergf48aec72007-06-18 07:07:55 +000090 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
91 logic.
92 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
93 correctly.
94 (ps_parser_load_field_table): Use `fields->array_max' instead of
95 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
96
Werner Lemberg95104a42007-06-18 07:33:10 +000097 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
98 2007-06-06.
99
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001002007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000101
102 * src/tools/ftrandom.c (font_size): New global variable.
103 (TestFace): Use it.
104 (main): Handle new option `--size' to set `font_size'.
105 (Usage): Updated.
106
Werner Lembergbe183eb2007-06-17 11:27:17 +0000107 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
108 invalid font.
109 (FNT_Load_Glyph): Protect against invalid bitmap width.
110
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001112007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000112
Werner Lemberge12ed562007-06-17 05:31:23 +0000113 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
114 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000115
Werner Lemberge12ed562007-06-17 05:31:23 +0000116 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
117 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000118
Werner Lemberge12ed562007-06-17 05:31:23 +0000119 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
120 and `zp2'.
121 (Ins_IP): Check argument ranges to reject bogus operations properly.
122 (IUP_WorkerRec): Add `max_points' member.
123 (_iup_worker_interpolate): Check argument ranges.
124 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000125
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001262007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000127
128 * src/winfonts/winfnt.h: Add necessary structures for PE resource
129 parsing.
130 (WinPE32_HeaderRec): New structure.
131 (WinPE32_SectionRec): New structure.
132 (WinPE_RsrcDirRec): New structure.
133 (WinPE_RsrcDirEntryRec): New structure.
134 (WinPE_RsrcDataEntryRec): New structure.
135 (FNT_FontRec): Remove unused `size_shift' field.
136
137 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
138 loading bitmap .fon files in PE format.
139
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001402007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000141
142 * builds/win32/ftdebug.c: Unify debug level handling with other
143 platforms.
144
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001452007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000146
147 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
148 console as well as to the debugger.
149
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001502007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000151
152 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
153 cover all ranges which could possibly be handled by the aflatin
154 module (since the default fallback for unknown ranges is now the
155 afcjk module). It might be necessary to fine-tune this further by
156 splitting off modules for Greek, Cyrillic, or other blocks.
157
David Turnerb7920172007-06-11 05:37:35 +00001582007-06-11 David Turner <david@freetype.org>
159
Werner Lemberg49e18b82007-06-11 21:15:09 +0000160 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
161 incorrect segment linking computation. This was the root cause of
162 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000163
164
Werner Lemberg49e18b82007-06-11 21:15:09 +0000165 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
166 to improve the Latin auto-hinter. Note that the new code is
167 disabled by default since it is not stabilized yet.
168
169 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
170 (disabled currently).
171
172 * src/autofit/afhints.c: Remove dead code.
173 (af_axis_hints_new_edge): Add argument to handle segment directions.
174 (af_edge_flags_to_string): New function.
175 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
176 option flags.
177 (af_glyph_hints_reload): Add argument to handle inflections.
178 Simplify.
179 (af_direction_compute): Fine tuning.
180 (af_glyph_hints_align_edge_points): Fix logic.
181 (af_glyph_hints_align_strong_points): Do linear search for small
182 edge counts.
183 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
184 (af_iup_shift): Handle zero `delta'.
185
186 * src/autofit/afhints.h: Updated.
187 (AF_SORT_SEGMENTS): New macro (disabled).
188 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
189
190 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
191 argument to pass option flags for handling scripts.
192 * src/autofit/afglobal.h: Updated.
193
194 * src/autofit/afcjk.c: Updated.
195 * src/autofit/aflatin.c: Updated.
196 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
197
198 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
199 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
200 Don't set `edge->dir'
201 (af_latin_hint_edges): Add more logging.
202
203 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000204
Werner Lembergf6c120f2007-06-11 04:55:58 +00002052007-06-11 Werner Lemberg <wl@gnu.org>
206
Werner Lembergcf7b7642007-06-11 04:58:01 +0000207 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000208
David Turner84c6f882007-06-10 20:51:04 +00002092007-06-10 David Turner <david@freetype.org>
210
Werner Lembergf6c120f2007-06-11 04:55:58 +0000211 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
212 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000213
Werner Lembergf6c120f2007-06-11 04:55:58 +0000214 * include/freetype/config/ftoption.h: Clarify documentation
215 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000216
Werner Lembergf6c120f2007-06-11 04:55:58 +0000217
218 Add new `FT_Face_CheckTrueTypePatents' API.
219
220 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
221 declaration.
222
223 * include/freetype/internal/services/svttglyf.h,
224 src/base/ftpatent.c: New files.
225
226 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
227 New macro.
228
229 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
230 `ttpload.h'.
231 (tt_service_truetype_glyf): New service structure.
232 (tt_services): Register it.
233
234 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
235 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000236
Werner Lemberg33db39e2007-06-08 06:30:29 +00002372007-06-08 Werner Lemberg <wl@gnu.org>
238
David Turner84c6f882007-06-10 20:51:04 +0000239 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000240 Fonts without a cmap must be handled correctly by FreeType (anything
241 else would be a bug).
242
243
244 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
245 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
246
Werner Lemberg88ab6382007-06-07 05:01:56 +00002472007-06-07 Werner Lemberg <wl@gnu.org>
248
249 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
250 tt_sbit_decoder_load_image): Protect against integer overflows.
251
252
253 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
254 for `x_control' and `y_control'.
255
Werner Lemberg2a2dca62007-06-06 04:39:37 +00002562007-06-06 Werner Lemberg <wl@gnu.org>
257
258 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
259
Werner Lemberga8d65492007-06-06 04:47:49 +0000260
261 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
262 FreeType error.
263
Werner Lemberg470210b2007-06-06 10:05:49 +0000264
265 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
266 `font_count'.
267
268
269 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
270
271
272 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
273 `FT_Error'.
274 Check `fd_index'.
275 (cff_slot_load): Updated.
276 * src/cff/cffgload.h: Updated.
277
Werner Lemberg6c054752007-06-05 05:27:54 +00002782007-06-05 Werner Lemberg <wl@gnu.org>
279
280 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
281 (pfr_glyph_load_simple): Convert assertion into normal FreeType
282 error.
283 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000284 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
285 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000286
287 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
288
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000289
Werner Lemberg470210b2007-06-06 10:05:49 +0000290 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000291
Werner Lemberge5c14d92007-06-05 20:50:37 +0000292
293 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
294 in case of parsing error.
295 (ps_parser_load_field): Updated.
296
297 * src/type1/t1load.c (parse_font_matrix): Updated.
298
Werner Lembergad18b362007-06-04 07:04:05 +00002992007-06-04 Werner Lemberg <wl@gnu.org>
300
301 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
302
303 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
304
Werner Lemberg3d507fe2007-06-03 16:54:55 +00003052007-06-03 Werner Lemberg <wl@gnu.org>
306
Werner Lemberg99a320b2007-06-03 19:21:26 +0000307 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
308 George Williams (with some modifications).
309
3102007-06-03 Werner Lemberg <wl@gnu.org>
311
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000312 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
313 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
314 face == NULL. Suggested by Graham Asher.
315
Werner Lembergce280a22007-06-03 05:58:30 +00003162007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
317
318 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
319
Werner Lemberg5b591e42007-06-01 22:16:43 +00003202007-06-02 Werner Lemberg <wl@gnu.org>
321
322 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
323 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
324
325 * src/bdf/bdflib.c (bdf_load_font): Use them.
326
327 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
328
Werner Lembergb9933f42007-06-01 21:27:12 +00003292007-06-01 Werner Lemberg <wl@gnu.org>
330
331 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
332 (FTC_CMapCache_Lookup): Remove unused code.
333
Werner Lembergc793d902007-06-01 20:51:11 +00003342007-06-01 Sean McBride <sean@rogue-research.com>
335
336 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
337 unused.
338
Werner Lembergbebc7b12007-06-01 06:32:30 +00003392007-06-01 Werner Lemberg <wl@gnu.org>
340
341 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
342 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000343 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000344
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000345 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
346 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
347
Werner Lembergba03af62007-05-30 13:57:02 +00003482007-05-30 Werner Lemberg <wl@gnu.org>
349
350 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
351 against too small binary data strings.
352
353 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
354
David Turnerf0cd69c2007-05-28 15:42:09 +00003552007-05-28 David Turner <david@freetype.org>
356
Werner Lemberg99e0c182007-05-29 07:00:23 +0000357 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
358 transformation. This significantly reduces the loading time of CFF
359 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000360
Werner Lemberg99e0c182007-05-29 07:00:23 +0000361 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000362
Werner Lemberg99e0c182007-05-29 07:00:23 +0000363 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
364 hinting script to CJK, since it works well with more scripts than
365 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
366 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000367
Werner Lemberg1c8980e2007-05-25 07:11:12 +00003682007-05-25 Werner Lemberg <wl@gnu.org>
369
370 * docs/CHANGES: Updated.
371
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00003722007-05-24 Werner Lemberg <wl@gnu.org>
373
374 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
375 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
376
3772007-05-24 Graham Asher <graham.asher@btinternet.com>
378
379 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
380 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
381
David Turner0d0365e2007-05-22 09:53:44 +00003822007-05-22 David Turner <david@freetype.org>
383
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000384 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
385 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000386
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000387
388 Avoid heap blowup with very large .Z font files. This fixes
389 Savannah bug #19910.
390
391 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
392 `in_limit', `pad', `pad_bits', and `in_buff' members.
393 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
394 `buf_total' members.
395
396 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
397 only one argument.
398 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000399
4002007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000401
402 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
403 (ps_dimension_set_mask_bits): Remove `const'.
404
David Turner0d0365e2007-05-22 09:53:44 +00004052007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000406
407 * src/sfnt/ttmtx.c (tt_face_get_metrics)
408 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
409
Werner Lembergb826fa72007-05-19 07:18:48 +00004102007-05-19 Derek Clegg <dclegg@apple.com>
411
412 Savannah patch #5929.
413
414 * include/freetype/tttables.h, src/base/ftobjcs.c
415 (FT_Get_CMap_Format): New function.
416
417 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
418 `format' member.
419 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
420 cmap_info->format.
421
Werner Lemberg6f99c882007-05-19 07:01:49 +00004222007-05-19 Werner Lemberg <wl@gnu.org>
423
424 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
425 before handling subglyphs so that it can be reinitialized each time.
426 This fixes Savannah bug #19859.
427
Werner Lemberg95bc9d32007-05-16 15:19:42 +00004282007-05-16 Werner Lemberg <wl@gnu.org>
429
430 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
431 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
432 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
433 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
434 tt_face_get_metrics): Fix type-punning issues.
435
David Turner0a24bd22007-05-15 10:54:10 +00004362007-05-15 David Turner <david@freetype.org>
437
438 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000439 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
440 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000441 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000442 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000443
Werner Lemberg607dec72007-05-15 06:49:37 +00004442007-05-15 Graham Asher <graham.asher@btinternet.com>
445
446 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
447 variable.
448 * src/autofit/afloader.c (af_loader_load_g): Ditto.
449
450 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
451 (open_face_from_buffer): Initialize `stream'.
452 (FT_Request_Metrics): Remove unused variable.
453 Remove redundant `break' statements.
454 (FT_Get_Track_Kerning): Remove unused variable.
455
456 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
457 afm_parse_kern_data): Remove redundant
458 `break' statements.
459 (afm_parser_parse): Ditto.
460 Don't use uninitialized variables.
461
462 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
463 Use `|' operator instead of `^' to set it.
464 Update all users.
465
466 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
467 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
468
469 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
470 comparison.
471 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
472 (TT_Load_Glyph): Remove unused variable.
473
Werner Lemberg8d463a52007-05-13 16:01:55 +00004742007-05-13 Derek Clegg <dclegg@apple.com>
475
476 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
477 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
478
David Turner711cf842007-05-11 14:36:24 +00004792007-05-11 David Turner <david@freetype.org>
480
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000481 * src/cache/ftbasic.c, include/freetype/ftcache.h
482 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
483 functions that allow us to look up glyphs using an FTC_Scaler object
484 to specify the size, making it possible to use fractional pixel
485 sizes.
486
487 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
488 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000489
Werner Lemberg94be20e2007-05-09 20:02:55 +00004902007-05-09 Graham Asher <graham.asher@btinternet.com>
491
492 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
493 (af_latin_metrics_scale_dim): Fix compiler warnings.
494
Werner Lemberg41271032007-05-06 04:51:48 +00004952007-05-06 Werner Lemberg <wl@gnu.org>
496
497 * builds/win32/visualce/freetype.sln: Removed, as requested by
498 Vincent.
499
Werner Lembergdf49e692007-05-04 06:30:05 +00005002007-05-04 Vincent RICHOMME <richom.v@free.fr>
501
502 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
503 PC targets.
504
505 * docs/CHANGES: Document them.
506
5072007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000508
509 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
510 mmap (which might happen on some RTOS). From Savannah patch #5909.
511
Werner Lemberg106eaf12007-05-03 07:07:47 +00005122007-05-03 Werner Lemberg <wl@gnu.org>
513
514 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
515 * include/freetype/freetype.h (FT_Set_Char_Size): Update
516 documentation.
517
Werner Lemberg1b5267d2007-04-28 21:06:15 +00005182007-04-28 Victor Stinner <victor.stinner@inl.fr>
519
520 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
521 `cmap'.
522
Werner Lembergcc712a22007-04-27 17:16:50 +00005232007-04-27 Werner Lemberg <wl@gnu.org>
524
525 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
526 number of points in contours. Problem reported by Victor Stinner
527 <victor.stinner@haypocalc.com>.
528 (TT_Process_Simple_Glyph): Synchronize variable types.
529
Werner Lemberg45bb18f2007-04-26 06:26:35 +00005302007-04-26 Werner Lemberg <wl@gnu.org>
531
532 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
533 zero in case of error. This fixes Savannah bug #19689.
534
David Turnera8b45e62007-05-11 14:10:30 +00005352007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
536
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000537 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
538 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000539
Werner Lembergfcc1f472007-04-10 11:51:50 +00005402007-04-10 Martin Horak <horakm@centrum.cz>
541
542 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
543 Ignore `hhea' table. This fixes Savannah bug #19261.
544
Werner Lemberg14bf82e2007-04-10 04:09:49 +00005452007-04-09 Werner Lemberg <wl@gnu.org>
546
547 * Version 2.3.4 released.
548 =========================
549
550
551 Tag sources with `VER-2-3-4'.
552
553 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
554 version number to 2.3.4.
555
556 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
557 builds/win32/visualc/freetype.dsp,
558 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
559
560 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
561
562 * builds/unix/configure.raw (version_info): Set to 9:15:3.
563
Werner Lembergf4a52a62007-04-09 08:40:11 +00005642007-04-09 Martin Horak <horakm@centrum.cz>
565
566 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
567 memory stream to avoid a crash with the incremental memory
568 interface (Savannah bug #19260).
569
David Turner1dcb4442007-04-06 08:19:04 +00005702007-04-06 David Turner <david@freetype.org>
571
Werner Lembergc81cf612007-04-06 09:28:23 +0000572 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
573 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000574
Werner Lemberg9f83e052007-04-05 02:28:23 +00005752007-04-04 Werner Lemberg <wl@gnu.org>
576
577 * Version 2.3.3 released.
578 =========================
579
580
581 Tag sources with `VER-2-3-3'.
582
583 * docs/CHANGES: Mention CVE-2007-1351.
584
David Turner7338ec22007-04-03 14:30:34 +00005852007-04-03 David Turner <david@freetype.org>
586
587 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000588 if one of the resolution values is 0, treat it as if it were the
589 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000590
David Turnere6472c12007-04-02 13:13:54 +00005912007-04-02 David Turner <david@freetype.org>
592
Werner Lemberg94f12272007-04-03 07:19:53 +0000593 Add special code to detect `extra-light' fonts and do not snap their
594 stem widths too much to avoid bizarre hinting effects.
595
596 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
597 `extra_light' members.
598
599 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
600 them.
601 (af_latin_metrics_scale_dim): Set `extra_light'.
602 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000603
David Turner3f539692007-03-28 14:53:40 +00006042007-03-28 David Turner <david@freetype.org>
605
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000606 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000607 padding.
608
Werner Lemberga08b2172007-03-28 07:17:17 +00006092007-03-28 Werner Lemberg <wl@gnu.org>
610
611 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
612 gracefully.
613 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000614 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000615 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
616 number of code points in Unicode.
617
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000618 * builds/win32/visualc/index.html,
619 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000620 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000621 s/232/233/.
622
623 * docs/CHANGES: Mention ftdiff.
624
David Turner3b242d32007-03-26 12:03:04 +00006252007-03-26 David Turner <david@freetype.org>
626
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000627 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
628 corresponding code.
629 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000630
Werner Lemberga08b2172007-03-28 07:17:17 +0000631 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000632 computations in order to ignore single-point contours. These are
633 never rasterized and correspond in certain fonts to mark-attach
634 points that are very far from the glyph's real outline, ruining the
635 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000636
Werner Lemberga08b2172007-03-28 07:17:17 +0000637 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000638 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000639 Otherwise code that uses them will most certainly ruin the fixed
640 advance property.
David Turner23553d62007-03-26 13:37:17 +0000641
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000642 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
643 documentation and bump version number to 2.3.3.
644
645 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
646
647 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000648
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00006492007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
650
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000651 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
652 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000653 * builds/vms/ftconfig.h: Ditto.
654 * include/freetype/config/ftconfig.h: Ditto.
655
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00006562007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
657
Werner Lemberg14ffe092007-03-22 06:12:43 +0000658 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
659 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000660 proposed by Sean McBride:
661 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
662
6632007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
664
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000665 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
666 setjmp, proposed by Sean McBride:
667 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
668
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00006692007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
670
Werner Lembergc9f6c662007-03-21 13:30:14 +0000671 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
672 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
673 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000674
David Turner74c34eb2007-03-18 07:19:31 +00006752007-03-18 David Turner <david@freetype.org>
676
Werner Lembergc9f6c662007-03-21 13:30:14 +0000677 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
678 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000679
Werner Lembergc9f6c662007-03-21 13:30:14 +0000680 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000681
David Turner89020d92007-03-17 17:48:57 +00006822007-03-17 David Turner <david@freetype.org>
683
Werner Lembergc9f6c662007-03-21 13:30:14 +0000684 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
685 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000686
Werner Lemberg25d592a2007-03-09 07:59:35 +00006872007-03-09 Werner Lemberg <wl@gnu.org>
688
689 * Version 2.3.2 released.
690 =========================
691
692
693 Tag sources with `VER-2-3-2'.
694
695 * builds/win32/visualc/index.html,
696 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000697 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000698 s/231/232/.
699
David Turner3a51afa2007-03-08 10:50:38 +00007002007-03-08 David Turner <david@freetype.org>
701
Werner Lemberg25d592a2007-03-09 07:59:35 +0000702 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000703
Werner Lemberg25d592a2007-03-09 07:59:35 +0000704 * builds/unix/configure.raw (version_info): Set to 9:13:3.
705
706 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
707
708 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000709
Werner Lemberg1e259de2007-03-08 15:39:21 +0000710 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
711 function to work properly, over-writing user-provided buffers in
712 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000713
David Turner121cad52007-03-08 16:43:50 +0000714
Werner Lemberg3d92f082007-03-06 11:59:24 +00007152007-03-05 Werner Lemberg <wl@gnu.org>
716
717 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
718 macro for `strstr'.
719
720 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
721 `trick_names', as suggested by Ivan Nincic.
722
David Turner085bc6e2007-03-05 17:40:03 +00007232007-03-05 David Turner <david@freetype.org>
724
Werner Lembergd112cf02007-03-06 12:06:56 +0000725 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
726 case FT_Init_FreeType fails for some reason. Problem reported by
727 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000728
Werner Lembergd112cf02007-03-06 12:06:56 +0000729 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
730 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
731 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
732 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000733
Werner Lembergd112cf02007-03-06 12:06:56 +0000734 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
735 signed values, not unsigned ones. Problem reported by Johannes
736 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000737
David Turner601aefe2007-02-21 16:47:49 +00007382007-02-21 David Turner <david@freetype.org>
739
Werner Lembergde5e6862007-02-25 21:06:43 +0000740 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
741 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000742
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00007432007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
744
745 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
746 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
747 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
748
Werner Lemberga0915172007-02-16 08:12:50 +00007492007-02-16 Werner Lemberg <wl@gnu.org>
750
751 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
752 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
753
David Turner2c4500e2007-02-14 15:08:47 +00007542007-02-14 David Turner <david@freetype.org>
755
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000756 It seems that the following changes fix most of the known
757 interpreter problems with my fonts, but more testing is needed,
758 though.
759
760 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
761 (TT_MulFix14): Rewrite.
762 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
763 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000764
Werner Lembergc6a14082007-02-12 22:08:15 +00007652007-02-12 Werner Lemberg <wl@gnu.org>
766
767 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
768 warnings.
769
770 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
771 (bdf_interpret_style): Ditto.
772
David Turnerc0f9c4a2007-02-12 14:55:03 +00007732007-02-12 David Turner <david@freetype.org>
774
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000775 Simplify projection and dual-projection code interface.
776
Werner Lemberg406d25f2007-02-12 22:01:18 +0000777 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
778 FT_Vector' as argument type.
779 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
780 Updated.
781 (CUR_fast_project, CUR_fast_dualproj): New macros.
782 (Project, Dual_Project, Project_x, Project_y): Updated.
783 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
784 macros.
785
786
787 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
788 adjustments for the non-light auto-hinted modes. Gets rid of
789 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000790
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000791 * src/autofit/aflatin.c (af_latin_hints_link_segments,
792 af_latin_hints_compute_edges): Slight optimization of the segment
793 linker and better handling of serif segments to get rid of broken
794 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000795
David Turnerc0f9c4a2007-02-12 14:55:03 +0000796
Werner Lemberg442bfb82007-02-12 21:44:10 +0000797 Introduce new string functions and the corresponding macros to get
798 rid of various uses of strcpy and other `evil' functions, as well as
799 to simplify a few things.
800
801 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
802 ft_mem_strcpyn): New declarations.
803 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
804 macros.
805 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
806 functions.
807
808 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
809 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
810 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
811 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
812 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
813 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
814 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
815 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000816
Werner Lemberg406d25f2007-02-12 22:01:18 +0000817 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
818
Werner Lemberg582067d2007-02-11 15:03:05 +00008192007-02-11 Werner Lemberg <wl@gnu.org>
820
821 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
822 non-spacing glyphs.
823
Werner Lemberg8f474532007-02-07 08:31:01 +00008242007-02-07 Tom Parker <palfrey@tevp.net>
825
826 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
827 pointer.
828
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008292007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
830
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000831 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
832 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000833 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000834 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
835 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
836 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
837 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000838
839 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
840 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000841 * builds/mac/ftmac.c: Ditto.
842
8432007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
844
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000845 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000846 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000847 #include <ftmac.c>.
848
8492007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
850
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000851 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
852 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
853 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
854 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
855 FT_GetFilePath_From_Mac_ATS_Name.
856 * builds/mac/ftmac.c: Ditto.
857
8582007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
859
Werner Lembergdcbb7082007-02-08 08:54:09 +0000860 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000861 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
862 for passing to FT_New_Face_From_FSSpec.
863
8642007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
865
Werner Lembergdcbb7082007-02-08 08:54:09 +0000866 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000867 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000868
869 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
870 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000871 * builds/mac/ftmac.c (OS_INLINE): Ditto.
872
Werner Lemberg313d7772007-02-01 08:10:45 +00008732007-02-01 Werner Lemberg <wl@gnu.org>
874
875 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
876 Explain why applications shouldn't use it. Found by Alexei.
877
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008782007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000879
880 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
881 message.
882
883 * src/gxvalid/gxvmort1.c
884 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
885 message.
886
Werner Lemberg53935932007-01-31 08:53:02 +00008872007-01-31 Werner Lemberg <wl@gnu.org>
888
889
890 * Version 2.3.1 released.
891 =========================
892
893
894 Tag sources with `VER-2-3-1-FINAL'.
895
896 * builds/win32/visualc/freetype.dsp,
897 builds/win32/visualc/freetype.vcproj: s/230/231/.
898 * builds/win32/visualc/index.html: s/221/231/.
899
900 * vms_make.com: Add `ftgasp'.
901
David Turnera7ee6082007-01-30 10:33:53 +00009022007-01-30 David Turner <david@freetype.org>
903
Werner Lemberg53935932007-01-31 08:53:02 +0000904 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000905
Werner Lemberg53935932007-01-31 08:53:02 +0000906 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000907
Werner Lemberg25d592a2007-03-09 07:59:35 +0000908 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000909 s/2.3.0/2.3.1/.
910
911 * builds/unix/configure.raw (version_info): Set to 9:12:3.
912
913
914 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
915 (af_loader_load_g): Disable the warper (i.e., the light hinting
916 improvements) to make a 2.3.1 bugfix release before introducing a
917 new feature. This should give us more time to tune and improve the
918 warper for the next release.
919
920 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000921
David Turnerd91eebd2007-01-26 15:05:41 +00009222007-01-25 David Turner <david@freetype.org>
923
Werner Lembergbf241762007-01-26 16:08:49 +0000924 For light auto-hinting, improve glyph advance widths and resurrect
925 normal/full hinting to its normal quality.
926
927 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
928 and `xmax_delta'.
929 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
930 and `xmax_delta'.
931
932 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
933 preprocessor conditional with if-clause, handling both light and
934 normal mode.
935
936 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
937 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000938
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00009392007-01-25 Werner Lemberg <wl@gnu.org>
940
941 * docs/release: Updated -- Savannah uses a new uploading scheme.
942
David Turnera42567b2007-01-25 12:23:37 +00009432007-01-25 David Turner <david@freetype.org>
944
Werner Lembergd7855662007-01-25 13:53:56 +0000945 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000946
Werner Lembergd7855662007-01-25 13:53:56 +0000947 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
948 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
949 functions.
David Turnera42567b2007-01-25 12:23:37 +0000950
Werner Lembergd7855662007-01-25 13:53:56 +0000951 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000952
Werner Lembergb1be9e82007-01-25 11:50:00 +00009532007-01-25 Werner Lemberg <wl@gnu.org>
954
955 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000956 correctly in a sanity check. Since this function is only used to
957 load local and global functions, any charstring that called the last
958 local/global function would fail otherwise. This fixes Savannah bug
959 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000960
961 * docs/CHANGES: Document it.
962
David Turnerb6de8d12007-01-23 15:51:50 +00009632007-01-23 David Turner <david@freetype.org>
964
Werner Lembergb1be9e82007-01-25 11:50:00 +0000965 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
966 prevented compilation when disabling both the unpatented and the
967 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000968
Werner Lembergb1be9e82007-01-25 11:50:00 +0000969
970 Fix and enable the warper to improve `light' hinting mode. This is
971 not necessarily a final version, but it seems to work well.
972
973 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
974 Disable code.
975 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
976 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
977
978 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
979 (af_warper_compute_line_best): Fix array size of `scores'.
980 (af_warper_compute): Better handling of border cases.
981 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
982 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000983
Werner Lemberg011d1112007-01-21 09:36:00 +00009842007-01-21 Werner Lemberg <wl@gnu.org>
985
Werner Lemberg42b63b22007-01-21 21:01:33 +0000986 * ChangeLog: Split off older entries into...
987 * ChangeLog.22: This new file.
988
9892007-01-21 Werner Lemberg <wl@gnu.org>
990
Werner Lemberg555258f2007-01-21 09:46:37 +0000991 * docs/CHANGES: Document SHZ fix.
992
9932007-01-21 George Williams <gww@silcom.com>
994
995 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
996 points.
997
9982007-01-21 Werner Lemberg <wl@gnu.org>
999
Werner Lemberg011d1112007-01-21 09:36:00 +00001000 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1001 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1002
Werner Lemberg87a5a432007-01-17 12:44:39 +000010032007-01-17 Werner Lemberg <wl@gnu.org>
1004
Werner Lembergb8003292007-01-17 12:56:25 +00001005
1006 * Version 2.3.0 released.
1007 =========================
1008
1009
1010 Tag sources with `VER-2-3-0-FINAL'.
1011
10122007-01-17 Werner Lemberg <wl@gnu.org>
1013
Werner Lemberg87a5a432007-01-17 12:44:39 +00001014 * docs/release: Updated.
1015
David Turner22122722007-01-16 20:06:44 +000010162007-01-16 David Turner <david@freetype.org>
1017
Werner Lemberg87a5a432007-01-17 12:44:39 +00001018 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1019 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1020 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1021 warnings.
David Turner22122722007-01-16 20:06:44 +00001022
Werner Lemberg267e1d72007-01-15 07:48:09 +000010232007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1024
1025 * builds/amiga/makefile, builds/amiga/makefile.os4,
1026 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1027
1028 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1029
Werner Lemberg8c4120d2007-01-15 06:42:40 +000010302007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1031
1032 Fix various compiler warnings.
1033
1034 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1035 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1036 s/index/strike_index/.
1037 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1038
1039 * src/gxvalid/gxvmorx5.c
1040 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1041
1042 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1043 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1044 uninitialized variables.
1045
Werner Lemberg6164a9d2007-01-13 23:01:36 +000010462007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1047
1048 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1049
Werner Lemberg281c1482007-01-13 22:50:51 +000010502007-01-13 Werner Lemberg <wl@gnu.org>
1051
1052 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1053 versions up to 0x3FF without complaining.
1054
Werner Lembergac250b22007-01-13 14:01:36 +000010552007-01-13 Derek Clegg <dclegg@apple.com>
1056
1057 Add FT_Get_PS_Font_Info interface to CFF driver.
1058
1059 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1060 (CFF_FontRec): Add `font_info' field.
1061
1062 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1063 (cff_font_done): Free font->font_info if necessary.
1064
1065 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1066 (cff_service_ps_info): Register cff_ps_get_font_info.
1067
Werner Lemberg23df31a2007-01-13 08:45:00 +000010682007-01-13 Werner Lemberg <wl@gnu.org>
1069
1070 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1071 with C++ compiler.
1072
1073 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1074 af_glyph_hints_dump_edges): Ditto.
1075
1076 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1077 `modules.cfg').
1078
1079 * src/sfnt/ttsbit0.h: Remove.
1080
1081 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1082
Werner Lemberg27cf9de2007-01-13 07:34:23 +000010832007-01-12 David Turner <david@freetype.org>
1084
1085 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1086 bug in the bitmap emboldener if the pitch of the source bitmap is
1087 much larger than its width.
1088
1089 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1090 compilation warning.
1091
Werner Lemberg6d96d312007-01-12 10:30:19 +000010922007-01-12 Werner Lemberg <wl@gnu.org>
1093
1094 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1095 `automake' CVS module from sources.redhat.com.
1096
Werner Lemberg17432b52007-01-12 09:28:44 +000010972007-01-11 Werner Lemberg <wl@gnu.org>
1098
1099 * src/type1/t1load.c (is_space): Removed.
1100 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1101 (parse_charstrings): Use IS_PS_TOKEN.
1102
1103
1104 * autogen.sh: Avoid bash specific syntax.
1105
David Turner038ace22007-01-11 15:00:59 +000011062007-01-11 David Turner <david@freetype.org>
1107
Werner Lemberg17432b52007-01-12 09:28:44 +00001108 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001109
Werner Lemberg17432b52007-01-12 09:28:44 +00001110 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001111
Werner Lemberg17432b52007-01-12 09:28:44 +00001112 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1113 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001114 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001115
Werner Lemberg17432b52007-01-12 09:28:44 +00001116 * autogen.sh: Small fix to get it working on Mac OS X properly:
1117 The issue is that GNU libtool is called `glibtool' on this platform,
1118 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001119
David Turner2628ea92007-01-10 13:15:56 +000011202007-01-10 David Turner <david@freetype.org>
1121
Werner Lemberg17432b52007-01-12 09:28:44 +00001122 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1123 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001124
Werner Lemberg17432b52007-01-12 09:28:44 +00001125 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1126 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1127 version number to 2.3.0.
1128
1129 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1130 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001131
1132 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001133 include/freetype/ftlcdfil.h: Update reference documentation with
1134 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001135
Werner Lemberg17432b52007-01-12 09:28:44 +00001136 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1137 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001138
Werner Lembergbf02d392007-01-10 07:07:37 +000011392007-01-10 Derek Clegg <dclegg@apple.com>
1140
1141 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1142 values.
1143
David Turnerf48b60e2007-01-08 15:15:32 +000011442007-01-08 David Turner <david@freetype.org>
1145
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001146 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001147
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001148 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1149 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001150 corresponding to a given character pixel size.
1151
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001152 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1153 `gasp' table, in order to avoid potential problems with later
1154 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001155
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001156 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1157 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001158
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001159 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1160 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1161 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1162 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001163
Werner Lemberge6b6f372007-01-07 00:06:47 +000011642007-01-07 Werner Lemberg <wl@gnu.org>
1165
Werner Lembergb8004d22007-01-07 09:13:38 +00001166 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1167 Type 11 fonts.
1168 Scan for `/sfnts' token.
1169
11702007-01-07 Werner Lemberg <wl@gnu.org>
1171
1172 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001173
Werner Lembergbe5f7972007-01-06 07:51:48 +000011742007-01-06 Werner Lemberg <wl@gnu.org>
1175
1176 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1177 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1178
David Turnera8cf42b2007-01-04 16:46:46 +000011792007-01-04 David Turner <david@freetype.org>
1180
Werner Lembergf6294392007-01-06 07:47:45 +00001181 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1182 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001183
Werner Lembergf6294392007-01-06 07:47:45 +00001184
1185 Do not allocate interpreter-specific tables in memory if we are not
1186 going to load glyphs with the bytecode interpreter anyway.
1187
1188 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1189 only if glyph is hinted.
1190 Updated.
1191 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1192 and `cvs_ready'.
1193 Add `tt_size_ready_bytecode' declaration.
1194 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1195 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1196 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1197 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1198 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001199
David Turner91a34022007-01-05 14:47:08 +00001200
Werner Lembergf6294392007-01-06 07:47:45 +00001201 Don't extract the metrics table from the SFNT font file. Instead,
1202 reparse it on each glyph load. The runtime difference is not
1203 noticeable, and it can save a lot of heap memory when memory-mapped
1204 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001205
Werner Lembergf6294392007-01-06 07:47:45 +00001206 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1207 `horz_metrics_offset' and `vert_metrics_ofset'.
1208 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1209 Updated.
1210
1211
1212 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1213
1214
1215 Do not load the CFF index offsets into memory, since this wastes a
1216 *lot* of heap memory with large Asian CFF fonts. There is no
1217 significant performance loss.
1218
1219 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1220 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1221 `data_size'.
1222 (CFF_CharsetRec): Add field `num_glyphs'.
1223
1224 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1225 cff_charset_cid_to_gindex): New functions.
1226 (cff_new_index): Renamed to...
1227 (cff_index_init): This. Update all callers.
1228 Updated -- some code has been moved to `cff_index_load_offsets'.
1229 (cff_done_index): Renamed to...
1230 (cff_index_done): This. Update all callers.
1231 (cff_index_get_pointers, cff_index_access_element): Updated to use
1232 stream offsets.
1233 (cff_charset_compute_cids): Set `num_glyphs' field.
1234 (cff_encoding_load): Updated.
1235
1236 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001237
12382007-01-04 David Turner <david@freetype.org>
1239
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001240 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1241 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001242
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001243 * README.CVS: Add common problem description and solution
1244 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001245
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001246 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001247
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001248 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001249
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001250 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001251
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001252 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1253 (TWorker): This.
1254 Remove `count_table' and `memory'.
1255 Make `grays' a pointer.
1256 (TRaster): New structure.
1257 (count_table): New static array.
1258 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1259 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1260 ft_black_set_mode, ft_black_render): Updated.
1261 (ft_black_init): Don't initialize `count_table'.
1262 (ft_black_reset): Use the render pool. This saves about 6KB of
1263 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001264
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001265 * src/smooth/ftgrays.c (TRaster): Replaced with...
1266 (TWorker): This.
1267 Remove `memory'.
1268 (TRaster): New structure.
1269
1270 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1271 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1272 gray_render_span, gray_raster_render): Updated.
1273 (gray_raster_reset): Use the render pool. This saves about 6KB of
1274 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001275
David Turner8a6c44e2007-01-04 17:03:11 +00001276 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1277 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001278 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1279 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1280 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001281
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001282 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1283 Remove a typo that results in no hinting and a memory leak with some
1284 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001285
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001286 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001287 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001288 CFF_Faces in it. We need to close all faces before destroying the
1289 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001290
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000012912007-01-02 Werner Lemberg <wl@gnu.org>
1292
1293 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1294 Remove compiler warning.
1295
David Turner9207e002007-01-02 16:58:13 +000012962007-01-02 David Turner <david@freetype.org>
1297
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001298 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001299
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000013002006-12-31 Masatake YAMATO <jet@gyve.org>
1301
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001302 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1303 function.
1304 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001305 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001306 `gxv_kern_subtable_fmt0_pairs_validate'.
1307
David Turner115b4422006-12-22 11:37:05 +000013082006-12-22 David Turner <david@freetype.org>
1309
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001310 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1311 warnings.
David Turner115b4422006-12-22 11:37:05 +00001312
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001313 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1314 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001315
Werner Lemberg4755bf72006-12-16 08:58:44 +000013162006-12-16 Anders Kaseorg <anders@kaseorg.com>
1317
1318 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1319 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1320
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000013212006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1322
Werner Lemberg9b774e22007-01-16 06:11:27 +00001323 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001324 sync with the modification by Jens Claudius on 2006-08-22; cf.
1325 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 +00001326
13272006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1328
1329 * src/base/ftmac.c: Specialized for Mac OS X only.
1330 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1331 * builds/unix/configure.raw: Ditto. When explicit switches for
1332 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1333 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1334
13352006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1336
1337 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1338 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1339 instead of src/base/ftmac.c
1340 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1341 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1342 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1343 that cannot be built at present.
1344
13452006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1346
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001347 * src/base/ftobjs.c: Improvement of resource fork handler for
1348 POSIX, cf.
1349 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001350 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1351 format or .dfont, to simulate the face index number counted by ftmac.c.
1352 (IsMacResource): Return the number of scalable faces correctly.
1353
Werner Lembergec5b4502006-12-10 07:51:38 +000013542006-12-10 Werner Lemberg <wl@gnu.org>
1355
1356 * builds/toplevel.mk (version): Protect against `distclean' target.
1357
Werner Lembergb26b3142006-12-09 20:01:43 +000013582006-12-09 Werner Lemberg <wl@gnu.org>
1359
1360 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1361 or `type'.
1362
1363 * builds/freetype.mk (version): Extracted from freetype.h, using
1364 GNU make's built-in string functions.
1365 (refdoc): Use $(version) instead of static version number.
1366
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000013672006-12-08 Werner Lemberg <wl@gnu.org>
1368
1369 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1370
Werner Lemberg15c29502006-12-09 07:29:54 +000013712006-12-08 Vladimir Volovich <vvv@vsu.ru>
1372
1373 * src/tools/apinames (State): Remove final comma in structure -- xlc
1374 v5 under AIX 4.3 doesn't like this.
1375
David Turnerdbf3b432006-12-07 21:18:09 +000013762006-12-07 David Turner <david@freetype.org>
1377
Werner Lemberg256a3512006-12-08 06:49:33 +00001378 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1379 to the spacing of auto-fitted glyphs. This only impacts rare
1380 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001381
Werner Lemberg11171312006-12-03 09:43:40 +000013822006-12-03 Werner Lemberg <wl@gnu.org>
1383
1384 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1385
Werner Lemberg960ba592006-12-01 08:20:47 +000013862006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001387
Werner Lemberg960ba592006-12-01 08:20:47 +00001388 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1389 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1390 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001391
David Turner80658e52006-11-28 08:09:20 +00001392
Werner Lemberg960ba592006-12-01 08:20:47 +00001393 * include/freetype/ftxf86.h: Fix and extend comment so that it
1394 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001395
Werner Lemberg960ba592006-12-01 08:20:47 +00001396 * include/freetype/ftchapters.h: Add `font_format' section.
1397
1398
1399 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1400 to TOC in index page.
1401
14022006-11-28 David Turner <david@freetype.org>
1403
1404 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1405 trying to render into a zero-width/height bitmap, not an error code.
1406
1407 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1408
1409 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1410 ones instead.
1411
1412 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1413 variable.
David Turner80658e52006-11-28 08:09:20 +00001414
Werner Lemberg8636c292006-11-26 22:28:13 +000014152006-11-26 Pierre Hanser <hanser@club-internet.fr>
1416
1417 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1418
Werner Lemberg960ba592006-12-01 08:20:47 +000014192006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001420
Werner Lemberg960ba592006-12-01 08:20:47 +00001421 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1422 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1423 Add stubs to link the `ftgrid' test program when debugging is
1424 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001425
Werner Lemberg960ba592006-12-01 08:20:47 +000014262006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001427
1428 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001429 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1430
1431 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1432 Emit more sensible information.
1433
1434 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1435
1436 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1437 rounding of blue values.
1438 (af_latin_hints_compute_segments): Hint segment heights.
1439 (af_latin_hints_link_segments): Reduce `len_score' value.
1440 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1441 value and use `height' member for comparisons.
1442 (af_latin_hint_edges): Extend logging message.
1443 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001444
Werner Lemberg91959bf2006-11-22 10:36:55 +000014452006-11-22 Werner Lemberg <wl@gnu.org>
1446
1447 Fix Savannah bug #15553.
1448
1449 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1450 program after a change from mono to grayscaling (and vice versa).
1451 Use correct constant for comparison to get `exec->grayscale'.
1452
Werner Lemberg913a3652006-11-19 09:19:17 +000014532006-11-18 Werner Lemberg <wl@gnu.org>
1454
1455 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001456 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001457 This patch fixes Savannah bug #18301.
1458
1459 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1460 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1461 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1462 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1463 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1464 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1465 (FNT_Load_Glyph): Check validity of `glyph_index'.
1466
David Turner7bab6ae2006-11-13 11:25:06 +000014672006-11-13 David Turner <david@freetype.org>
1468
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001469 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1470 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001471
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001472 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1473 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1474 when building the library to change the default LCD filter to be
1475 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001476
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001477 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001478
David Turner8765c712006-11-10 16:49:42 +000014792006-11-10 David Turner <david@freetype.org>
1480
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001481 * src/smooth/ftsmooth.c: API change for the LCD
1482 filter. The FT_LcdFilter value is an enumeration describing which
1483 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1484 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1485 algorithm which produces strong color fringes for everything
1486 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001487
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001488 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1489 second parameter to an enum type.
1490
1491 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1492 (_ft_lcd_filter): Rename to...
1493 (_ft_lcd_filter_fir): This.
1494 Update parameters.
1495 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1496 (FT_Library_Set_LcdFilter): Update parameters.
1497 Handle new filter modes.
1498
1499 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1500 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1501 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1502 callback and update other fields.
1503
1504 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1505 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1506 Other minor improvements.
1507
1508 * src/autofit/aflatin.c: Various tiny improvements that drastically
1509 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1510 (af_latin_hints_compute_edges): Fix typo.
1511 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001512
David Turner4e9cc3c2006-11-09 16:31:52 +000015132006-11-09 David Turner <david@freetype.org>
1514
Werner Lemberg49c77a82006-11-09 21:51:57 +00001515 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1516 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001517
Werner Lemberg5e430892006-11-07 09:35:03 +000015182006-11-07 Zhe Su <james.su@gmail.com>
1519
1520 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1521 also.
1522
Werner Lemberg111b5ae2006-11-03 09:40:12 +000015232006-11-03 Werner Lemberg <wl@gnu.org>
1524
1525 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1526
David Turner40604742006-11-02 16:37:35 +000015272006-11-02 David Turner <david@freetype.org>
1528
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001529 Add a few tweaks to better handle serif fonts.
1530 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001531
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001532 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1533 segments that are less than 1.5 pixels high. This gets rid of
1534 *many* corner cases with serifs.
1535 (af_latin_align_linked_edge): Add logging message.
1536 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1537 Add logging messages.
1538 Handle AF_EDGE_FLAG flag specially.
1539
1540 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1541 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1542
1543 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1544 Update external declarations.
1545 (af_corner_orientation, af_corner_is_flat): Replaced by...
1546
1547 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1548 ft_corner_is_flat): These declarations.
1549
1550 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1551 Comment out. Replaced by...
1552
1553 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1554 These functions. Update all callers.
1555 (FT_Add64) [!FT_LONG64]: Simplify.
1556
1557 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1558 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1559 production of garbage by missing lots of segments.
1560
1561 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1562
1563 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1564 [AF_DEBUG]: Set _af_debug_hints.
1565
1566
1567 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1568 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1569 and ft_corner_orientation.
1570
1571
1572 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001573
Werner Lemberge88c5262006-10-24 05:46:26 +000015742006-10-24 Werner Lemberg <wl@gnu.org>
1575
1576 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1577
1578 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1579 as argument.
1580
David Turnera1861392006-10-23 16:00:59 +000015812006-10-23 Zhe Su <zsu@novell.com>
1582
Werner Lemberg715e96e2006-10-24 05:28:45 +00001583 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1584 better deal with broken Asian fonts with strange glyphs, having
1585 self-intersections and other peculiarities. The used algorithm is
1586 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001587
David Turnere140f142006-10-23 08:56:57 +000015882006-10-23 David Turner <david@freetype.org>
1589
Werner Lemberg715e96e2006-10-24 05:28:45 +00001590 Speed up the CFF font loader. With some large CFF fonts,
1591 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001592
Werner Lemberg715e96e2006-10-24 05:28:45 +00001593 * src/cff/cffload.c (cff_get_offset): Removed.
1594 (cff_new_index): Inline functionality of `cff_get_offset'.
1595 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1596 (cff_charset_done): Call `cff_charset_free_cids'.
1597 (cff_charset_load): Call `cff_charset_compute_cids'.
1598 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1599
1600 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1601 with FT_NEXT_XXX.
1602
1603
1604 Speed up the Postscript hinter, with more than 100% speed increase
1605 on my machine.
1606
1607 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1608 psh_corner_orientation): New functions.
1609 (psh_glyph_compute_inflections): Merge loops for efficiency.
1610 Use `psh_corner_orientation'.
1611 (psh_glyph_init): Use `psh_corner_is_flat'.
1612 (psh_hint_table_find_strong_point): Renamed to...
1613 (psh_hint_table_find_strong_points): This.
1614 Rewrite, adding argument to handle all points at once.
1615 Update all callers.
1616 (PSH_MAX_STRONG_INTERNAL): New macro.
1617 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001618
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000016192006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1620
1621 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001622 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001623
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000016242006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1625
1626 * docs/INSTALL.CROSS: New document file for cross-building.
1627
1628 * builds/unix/configure.raw: Preliminary cross-building support.
1629 Find native C compiler and pass it by CC_BUILD, and
1630 find suffix for native executable and pass it by EXEEXT_BUILD.
1631 Also suffix for target executable is passed by EXEEXT.
1632
Werner Lembergb9e6d692006-10-15 08:58:40 +00001633 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1634 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001635 CC_BUILD and EXEEXT_BUILD.
1636
Werner Lembergb9e6d692006-10-15 08:58:40 +00001637 * builds/exports.mk (APINAMES_EXE): Change the extension for
1638 apinames from the suffix for target (E) to that for building host
1639 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001640
Werner Lemberg82a07e92006-10-12 06:20:44 +000016412006-10-12 Werner Lemberg <wl@gnu.org>
1642
1643 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1644 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1645 which reference those files.
1646
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000016472006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1648
Werner Lembergb9e6d692006-10-15 08:58:40 +00001649 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1650 embedded in freetype2.pc and freetype-config. Use it to record
1651 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001652
1653 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1654
1655 * builds/unix/freetype-config.in: Ditto.
1656
Werner Lemberg28e17d92006-10-11 17:27:47 +000016572006-10-11 Werner Lemberg <wl@gnu.org>
1658
1659 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1660 development.
1661
Jens Claudius336d2292006-10-03 08:53:37 +000016622006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1663
1664 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1665 argument to ft_setjmp.
1666
1667 * include/freetype/internal/ftvalid.h: Add comment that
1668 ft_validator_run must not be used.
1669
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016702006-10-01 Werner Lemberg <wl@gnu.org>
1671
1672 * src/base/ftbase.c: Undo change from 2006-09-30.
1673
1674 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1675
16762006-09-30 David Turner <david@freetype.org>
1677
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001678 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1679 s/unpatented_hinting/ignore_unpatented_hinter/.
1680 Update all callers.
1681
1682 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1683 auto-hinting shall be used or not.
1684
1685 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001686
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016872006-09-30 Werner Lemberg <wl@gnu.org>
1688
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001689 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1690 in use).
1691
1692 * src/base/ftbase.c: Include `ftlcdfil.c'.
1693
Werner Lemberg9b15ea32006-09-29 18:22:11 +000016942006-09-29 Werner Lemberg <wl@gnu.org>
1695
1696 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1697 overlapping segments. Bug reported by Stefan Koch.
1698
David Turnerad830712006-09-27 16:20:59 +000016992006-09-28 David Turner <david@freetype.org>
1700
Werner Lemberg2c002e12006-09-29 21:31:53 +00001701 Fix a bug in the automatic unpatented hinting support which prevents
1702 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001703
Werner Lemberg2c002e12006-09-29 21:31:53 +00001704 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1705 s/force_autohint/unpatented_hinting/. Update all callers.
1706
1707 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1708
1709 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001710
David Turner8a317cf2006-09-27 07:52:48 +000017112006-09-27 David Turner <david@freetype.org>
1712
Werner Lemberg2c002e12006-09-29 21:31:53 +00001713 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001714
David Turner8a317cf2006-09-27 07:52:48 +00001715
David Turnere140f142006-10-23 08:56:57 +00001716 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001717 In a default build, the function `FT_Library_SetLcdFilter' returns
1718 `FT_Err_Unimplemented_Feature'; you need to #define
1719 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1720 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001721
Werner Lemberg2c002e12006-09-29 21:31:53 +00001722 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001723
Werner Lemberg2c002e12006-09-29 21:31:53 +00001724 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1725 typedef.
1726 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1727 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001728
Werner Lemberg2c002e12006-09-29 21:31:53 +00001729 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1730 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001731
Werner Lemberg2c002e12006-09-29 21:31:53 +00001732 Handle subpixel rendering.
1733 Simplify function.
1734 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1735 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1736
1737 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1738 pointing to <freetype/ftlcdfil.h>.
1739
1740 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1741 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1742
1743 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001744
Werner Lemberge20df4a2006-09-27 06:29:21 +000017452006-09-26 David Bustin
1746
1747 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1748 correctly. Reported as Savannah bug #17843.
1749
David Turner6f8c6222006-09-26 15:42:44 +000017502006-09-26 David Turner <david@freetype.org>
1751
Werner Lemberg110246c2006-09-26 21:55:44 +00001752 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1753 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1754 horizontal and vertical hinting for the purpose of debugging the
1755 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001756
Werner Lemberg110246c2006-09-26 21:55:44 +00001757 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1758 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001759
Werner Lemberg110246c2006-09-26 21:55:44 +00001760 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1761
1762 * include/freetype/config/ftoption.h, devel/ftoption.h
1763 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1764 we want to compile LCD-optimized rendering code (à la ClearType) or
1765 not. The macro *must* be disabled in default builds of the library
1766 for patent reasons.
1767
1768 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1769 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1770 isn't defined at compile time. This only changes the content of the
1771 rendered glyph to match the one of normal gray-level rendering,
1772 hence clients should not need to be modified.
1773
1774 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001775
Werner Lemberg745ff2c2006-09-19 05:48:02 +000017762006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1777
1778 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1779 LWFN fails and both are available.
1780
David Turnerf3050052006-09-11 12:00:32 +000017812006-09-11 David Turner <david@freetype.org>
1782
Werner Lembergf9644552006-09-12 13:48:10 +00001783 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1784 report their English names through an Apple Roman
1785 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001786
Werner Lembergf9644552006-09-12 13:48:10 +00001787 If the font uses another name entry with language_id == English, it
1788 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001789
Werner Lembergf9644552006-09-12 13:48:10 +00001790 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1791 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001792
Werner Lemberg36d2eab2006-09-05 19:24:34 +000017932006-09-05 Werner Lemberg <wl@gnu.org>
1794
1795 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001796 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001797 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1798 `HAN NOM B.ttf').
1799
1800 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1801
David Turner772e55d2006-09-05 09:45:15 +000018022006-09-05 David Turner <david@freetype.org>
1803
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001804 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001805
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001806 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1807 (TRaster): Remove `count_ex' and `count_ey'.
1808 (gray_find_cell): Remove 2nd and 3rd argument.
1809 (gray_alloc_cell): Merged with `gray_find_cell'.
1810 (gray_record_cell): Simplify.
1811 (gray_set_cell): Rewrite.
1812 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1813 (gray_render_span): Don't use FT_MEM_SET for small values.
1814 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1815 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1816 bitmap scanline.
1817 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001818
David Turneraa557a92006-09-04 16:42:44 +000018192006-09-04 David Turner <david@freetype.org>
1820
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001821 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1822 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001823
Werner Lemberg2d8629b2006-09-03 06:18:45 +000018242006-09-03 Werner Lemberg <wl@gnu.org>
1825
1826 * devel/ftoption.h: Synchronize with
1827 include/freetype/config/ftoption.h.
1828
1829 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1830 variable declaration.
1831 (gray_convert_glyph): Fix compiler warnings.
1832
David Turner6d79f212006-09-01 14:09:35 +000018332006-09-01 David Turner <david@freetype.org>
1834
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001835 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1836 to recognize a few fonts that require the automatic unpatented
1837 loader.
David Turnerbd502952006-09-01 19:05:24 +00001838
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001839 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1840 rasterizer. The speed improvement is between 15% and 25%, depending
1841 on the font data.
1842
1843 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1844 (TCell): Redefine.
1845 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1846 (gray_init_cells): Updated.
1847 (gray_find_cell, gray_alloc_cell): New functions.
1848 (gray_record_cell): Rewritten to use `gray_find_cell' and
1849 `gray_alloc_cell'.
1850 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1851 QSORT_THRESHOLD):
1852 Removed.
1853 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1854 gray_dump_cells): Removed.
1855 (gray_sweep): Rewritten.
1856 (gray_convert_glyph): Rewrite code which used one of the sorting
1857 functions.
1858 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001859
Werner Lembergd898aed2006-08-29 09:50:34 +000018602006-08-29 Dr. Werner Fink <werner@suse.de>
1861
1862 * configure: Make it possible to handle configure options which
1863 have strings containing spaces.
1864
18652006-08-27 David Turner <david@freetype.org>
1866
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001867 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1868 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1869 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1870
1871 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1872 src/truetype/truetype.c, src/truetype/ttdriver.c,
1873 src/truetype/ttgload.c, src/truetype/ttgload.h,
1874 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1875 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1876 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1877
1878 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1879 member `force_autohint'.
1880
1881 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1882
1883 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1884 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001885
Jens Claudiusa787f452006-08-27 11:26:18 +000018862006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1887
1888 Fix miscellaneous compiler warnings.
1889
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001890 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1891 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001892
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001893 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1894 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1895 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001896
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001897 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1898 volatileness of argument to ft_longjmp. Spotted by Werner
1899 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001900
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001901 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1902 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001903
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001904 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1905 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001906
Werner Lembergc4c35b72006-08-27 08:03:46 +000019072006-08-27 Werner Lemberg <wl@gnu.org>
1908
1909 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1910 Reported by Jens.
1911
Jens Claudius088e44e2006-08-22 14:24:30 +000019122006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001913
Jens Claudius088e44e2006-08-22 14:24:30 +00001914 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001915 about addresses of volatile objects passed as function arguments as
1916 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001917
Werner Lembergc4c35b72006-08-27 08:03:46 +00001918 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1919 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001920
1921 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1922 argument `table' a pointer to a volatile object.
1923
1924 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1925 argument `table' a pointer to a volatile object.
1926
Jens Claudius2652bd52006-08-18 17:20:37 +000019272006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1928
1929 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1930 variable `_sfnt' as volatile since it must keep its value across
1931 a call to ft_setjmp.
1932 (gxv_validate): Same for local variables `memory' and `valid'.
1933 (classic_kern_validate): Same for local variables `memory',
1934 `ckern', and `valid'.
1935
1936 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1937 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1938 `jstf', and 'valid'.
1939
1940 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1941 local variable `cmap'.
1942
David Turner9fbfc6a2006-08-16 09:11:31 +000019432006-08-16 David Turner <david@freetype.org>
1944
Werner Lemberg12342992006-08-19 11:18:09 +00001945 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1946 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001947
Werner Lemberg12342992006-08-19 11:18:09 +00001948 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1949 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001950
David Turner33f5f242006-08-16 16:50:55 +00001951
Werner Lemberg12342992006-08-19 11:18:09 +00001952 Improvements to native TrueType hinting. This is a first try,
1953 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1954
1955 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1956 `extra_points2'.
1957
1958 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1959 `orus'.
1960
1961 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1962 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1963 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1964 handle `extra_points2'.
1965
1966 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1967 Remove compiler warning.
1968 (cur_to_arg): Remove macro.
1969 (TT_Hint_Glyph): Updated.
1970 (TT_Process_Simple_Glyph): Handle `orus'.
1971
1972 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1973 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1974 (LOC_Ins_IUP): Renamed to...
1975 (IUP_WorkerRec): This.
1976 Add `orus' member.
1977 (Shift): Renamed to...
1978 (_iup_worker_shift): This.
1979 Updated.
1980 (Interp): Renamed to...
1981 (_iup_worker_interpolate): This.
1982 Updated to handle `orus'.
1983 (Ins_IUP): Updated.
1984
1985 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1986 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001987
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000019882006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1989
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001990 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001991 build ftvalid in ft2demos. This has been inadvertedly changed
1992 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001993
19942006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1995
Werner Lemberg12342992006-08-19 11:18:09 +00001996 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1997 Jens:
1998 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001999
Werner Lemberg12342992006-08-19 11:18:09 +00002000 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2001 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002002
2003 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2004
Jens Claudius9950adc2006-08-13 12:14:36 +000020052006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2006
Werner Lemberg12342992006-08-19 11:18:09 +00002007 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2008 T1_TOKEN_TYPE_KEY.
2009 (T1_FieldRec): Add `dict'.
2010 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2011 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2012 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002013
Werner Lemberg12342992006-08-19 11:18:09 +00002014 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2015 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002016
2017 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2018
2019 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002020 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2021 not T1_TOKEN_TYPE_ANY.
2022 (ps_parser_load_field): Make sure a token that should be a string or
2023 name is really a string or name.
2024 Avoid memory leak if a keyword has been already encountered and its
2025 value is overwritten.
2026 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2027 T1_FIELD_XXX.
2028 (parse_dict): Ignore keywords that occur in the wrong dictionary
2029 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002030
Werner Lemberg12342992006-08-19 11:18:09 +00002031 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2032 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002033
Werner Lemberg12342992006-08-19 11:18:09 +00002034 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2035 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002036
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000020372006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2038
2039 Move creation of field `buildchar' of T1_DecoderRec out of
2040 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2041 of it.
2042
2043 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2044 and `T1_Compute_Max_Advance'.
2045
2046 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2047 Remove field `face', add `len_buildchar'.
2048
2049 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2050 field `buildchar'.
2051
2052 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2053 finisher for T1_Decoder.
2054 (cid_slot_load_glyph): Do not ignore failure when initializing the
2055 T1_Decoder.
2056
2057 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2058 Updated.
2059 (t1_decoder_init): Remove initialization of fields `buildchar' and
2060 `len_buildchar'.
2061 (t1_decoder_done): Remove deallocation of field `buildchar'.
2062
2063 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2064 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2065 T1_Decoder.
2066 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2067 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2068 case of error.
2069
2070 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2071 `buildchar' of T1_FaceRec.
2072
2073 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2074 `buildchar' of T1_FaceRec.
2075
Werner Lemberg1a380e02006-07-14 18:28:08 +000020762006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2077
2078 * freetype2/include/freetype/internal/psaux.h: New macros
2079 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2080 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2081 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2082 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2083 (T1_DecoderRec): New fields `buildchar' and `face'.
2084 (IS_PS_TOKEN): New macro.
2085
2086 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2087 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2088
2089 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2090 `default_design_vector' and `num_default_design_vector'.
2091
2092 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2093 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2094 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2095
2096 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2097 `token' argument to be NULL if we want only to count the number of
2098 tokens.
2099 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2100 want to skip the array.
2101 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2102 want to skip the array.
2103
2104 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2105 support for (partially commented out) othersubrs 19-25, 27, and 28.
2106 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2107 (t1_decoder_done): Release new field `buildchar'.
2108
2109 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2110 functions.
2111 (t1_keywords): Register them.
2112 (t1_allocate_blend): Updated.
2113 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2114 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2115 (parse_dict): Remove `keyword_flags' argument.
2116 Use new macro IS_PS_TOKEN.
2117 Changed function so that later PostScript definitions override
2118 earlier ones.
2119 (t1_init_loader): Initialize new field `keywords_encountered'.
2120 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2121 `len_buildchar'.
2122 Remove `keywords_flags'.
2123
2124 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2125 `keywords_encountered'.
2126 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2127
2128 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2129 New entries for parsing /NDV, /CDV, and /DesignVector.
2130
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000021312006-07-07 Werner Lemberg <wl@gnu.org>
2132
2133 Add many checks to protect against malformed PCF files.
2134
2135 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2136 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2137
2138 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2139 data and check that tables don't overlap (using a simple
2140 bubblesort).
2141 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2142 New macros which give the size of data structures in the data
2143 stream.
2144 (pcf_get_properties): Use rough estimates to get array size limits.
2145 Assign `face->nprops' and `face->properties' earlier so that a call
2146 to PCF_Face_Done can do the clean-up in case of error.
2147 Protect against invalid string offsets.
2148 (pcf_get_metrics): Clean up code.
2149 Adjust tracing message levels.
2150 Use rough estimate to get array size limit.
2151 (pcf_get_bitmaps): Clean up code.
2152 Adjust tracing message levels.
2153 Use rough estimates to get offset limits.
2154 (pcf_get_encodings): Adjust tracing message level.
2155 (pcf_get_accel): Clean up code.
2156
Werner Lemberg8eb05252006-06-27 06:20:01 +000021572006-06-26 Werner Lemberg <wl@gnu.org>
2158
2159 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2160 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2161
Werner Lemberg24703f82006-06-26 19:12:51 +000021622006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2163
2164 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2165 (t1_decoder_parse_charstrings): Operator with
2166 opcode 15 pops its two arguments.
2167 Handle the case where the pops of an othersubr may be part of a
2168 subroutine.
2169 Handle unknown othersubrs gracefully: count their operands and let
2170 the following pop operators push the operands as the results onto
2171 the Type1 stack.
2172 Improve handling of setcurrentpoint opcode.
2173
Werner Lembergc011f4c2006-06-26 09:40:00 +000021742006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2175
2176 The Type 1 parser now skips over top-level procedures as required
2177 for a `Simplified Parser'. This makes the parser more robust as it
2178 doesn't poke around in PostScript code. Additionally, it makes the
2179 FontDirectory hackery in src/type1/t1load.c unnecessary.
2180
2181 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2182 (skip_literal_string): Add FT_Error as return value.
2183 Handle escapes better.
2184 (skip_string): Add FT_Error as return value.
2185 Don't set `parser->error' but return error code directly.
2186 (skip_procedure): New function.
2187 (ps_parser_skip_PS_token): Handle procedures.
2188 Update code.
2189 (ps_parser_to_token): Update code.
2190 (ps_parser_load_field_table): Handle bbox entries also.
2191
2192 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2193 Add commented-out code for synthetic fonts.
2194
Werner Lemberga2da05c2006-06-25 06:27:27 +000021952006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2196
2197 Fix two hinting bugs as reported in
2198 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2199
2200 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2201 `first_point' member.
2202
2203 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2204 `first_point'.
2205 (TT_Process_Composite_Glyph): Always untouch points.
2206
2207 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2208 `first_point' and `last_point' in case of composite glyphs.
2209 (Ins_IUP): Fix computation of `end_point'.
2210
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000022112006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2212
Werner Lembergef3d2c22006-06-25 06:07:14 +00002213 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2214 Mac. The original patch was written by David Sachitano and Lawrence
2215 Coopet, and modified by Sean McBride for MPW compatibility. Only
2216 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002217
Werner Lembergef3d2c22006-06-25 06:07:14 +00002218 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2219 Mac OS X platforms.
2220 (OS_INLINE): Undefine before definition.
2221 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2222 FontAssociation table in FOND resource.
2223 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2224 and fontSize at each entry of FontAssociation table in FOND
2225 resource.
2226 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2227 ffStylOff of FamilyRecord header of FOND resource, the header,
2228 fontSize, fontID at each entry of FontAssociation table, and
2229 StyleMapping table.
2230 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002231
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000022322006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2233
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002234 Public API of TrueTypeGX, OpenType, and classic kern table validator
2235 should return `FT_Err_Unimplemented_Feature' if validation service
2236 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002237 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002238 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2239
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002240 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2241 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2242 unavailable.
2243 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2244 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002245
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002246 * src/base/ftotval.c (FT_OpenType_Validate): Return
2247 FT_Err_Unimplemented_Feature if OpenType validation service is
2248 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002249
Werner Lembergb10e45a2006-06-08 07:32:56 +000022502006-06-08 Werner Lemberg <wl@gnu.org>
2251
2252 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2253 errors.
2254
David Turner5f1f7502006-06-07 05:11:50 +000022552006-06-07 David Turner <david@freetype.org>
2256
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002257 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2258 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2259 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002260
David Turner457b4a82006-06-06 08:14:14 +000022612006-06-06 David Turner <david@freetype.org>
2262
Werner Lemberg4836f952006-06-06 12:54:08 +00002263 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002264
Werner Lemberg4836f952006-06-06 12:54:08 +00002265 We change `ps_unicodes_init' so that it also takes a
2266 `free_glyph_name' callback to release the glyph names returned by
2267 `get_glyph_name'
2268
2269 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2270 Renamed to ...
2271 (PS_GetGlyphNameFunc): This.
2272 (PS_FreeGlyphNameFunc): New typedef.
2273 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2274
2275 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2276 argument.
2277 (cff_sid_free_glyph_name): New function.
2278 (cff_cmap_unicode_init): Updated.
2279
2280 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2281
2282 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2283 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002284
2285
David Turner09717352006-06-04 14:33:08 +000022862006-06-04 David Turner <david@freetype.org>
2287
Werner Lembergd724f202006-06-04 15:17:41 +00002288 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2289 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002290 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002291
Werner Lembergd724f202006-06-04 15:17:41 +00002292 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2293 of `face->num_glyphs' which missed the last glyph, due to
2294 the offset-by-1 computation, since the PFR format doesn't
2295 guarantee that glyph index 0 corresponds to the `missing
2296 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002297
Werner Lemberg33779662006-05-26 06:30:05 +000022982006-05-25 Werner Lemberg <wl@gnu.org>
2299
2300 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2301 `-no-undefined'. Reported by Christian Biesinger.
2302
Werner Lemberg24773d62006-05-20 08:53:13 +000023032006-05-19 Brian Weed <bw@imaginengine.com>
2304
2305 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2306 have debug information, and debug libraries use `C7 compatible'
2307 debug info.
2308
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000023092006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2310
Werner Lemberga6523a62006-05-20 08:47:01 +00002311 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002312 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002313
Werner Lemberga6523a62006-05-20 08:47:01 +00002314 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2315 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002316
2317 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002318 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002319
23202006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2321
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002322 * build/unix/configure.raw: Add a fallback to disable Carbon
2323 dependency, if configured with no options on Mac OS X.
2324
23252006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2326
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002327 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002328 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002329 the second part of Savannah bug #16590.
2330
Werner Lemberg545c4e52006-05-17 22:55:04 +000023312006-05-18 Werner Lemberg <wl@gnu.org>
2332
2333 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2334 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2335
David Turnerdc3ff312006-05-17 12:59:35 +000023362006-05-17 David Turner <david@freetype.org>
2337
Werner Lemberg545c4e52006-05-17 22:55:04 +00002338 This is a major patch used to drastically improve the performance of
2339 loading glyphs. This both speeds up loading the glyph vectors
2340 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002341
Werner Lemberg545c4e52006-05-17 22:55:04 +00002342 We now use inline assembler code with GCC to implement `FT_MulFix',
2343 which is probably the most important function related to the
2344 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002345
Werner Lemberg545c4e52006-05-17 22:55:04 +00002346 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002347
2348
Werner Lemberg545c4e52006-05-17 22:55:04 +00002349 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2350 `cursor' and `limit'.
2351
2352 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2353 New functions.
2354 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2355 [TEST]: Remove.
2356
2357 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2358 code.
2359
2360 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2361 `FT_ZERO'
2362 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2363 (af_glyph_hints_reload: Rewrite recognition of weak points.
2364
2365 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2366 constant values out of the loops.
2367
2368 * src/autofit/aftypes.h: Updated.
2369
2370 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2371
2372 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2373 product to get orientation.
2374
2375 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2376 (FT_Stream_OpenGzip): Use it to handle small files directly in
2377 memory.
2378
2379 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2380 Improve performance.
2381
2382 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2383 `limit'.
2384
2385 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2386 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2387 exceedingly large values of number of contours. Speed up by
2388 reducing the number of loops.
2389
2390 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2391
2392
2393 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2394 used to detect rogue clients from 4 to 16. This is to prevent some
2395 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2396 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002397
Werner Lembergde2d90a2006-05-17 08:54:30 +000023982007-05-17 Werner Lemberg <wl@gnu.org>
2399
2400 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002401 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002402
24032006-05-16 Werner Lemberg <wl@gnu.org>
2404
2405 * docs/PROBLEMS: Updated icl issues.
2406
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002407----------------------------------------------------------------------------
2408
Werner Lemberg42b63b22007-01-21 21:01:33 +00002409Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002410David Turner, Robert Wilhelm, and Werner Lemberg.
2411
2412This file is part of the FreeType project, and may only be used, modified,
2413and distributed under the terms of the FreeType project license,
2414LICENSE.TXT. By continuing to use, modify, or distribute this file you
2415indicate that you have read the license and understand and accept it
2416fully.
2417
2418
2419Local Variables:
2420version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002421coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002422End: