blob: 38493fb3bf0d896edca80dc040ab14fd1e68532a [file] [log] [blame]
Werner Lemberg7723dc32007-06-26 04:44:35 +000012007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
2
3 Add autofit module for Indic scripts. This currently just reuses
4 the CJK-specific functions.
5
6 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
7 macro.
8 * devel/ftoption.h: Synchronize with
9 include/freetype/config/ftoption.h.
10
11 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
12
13 * src/autofit/afglobal.c, src/autofit/aftypes.h,
14 src/autofit/autofit.c: Updated.
15
16 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
17 (AUTOF_DRV_SRC): Updated.
18
David Turner8f626b02007-06-22 22:22:38 +0000192007-06-23 David Turner <david@freetype.org>
20
Werner Lemberg7854c4a2007-06-23 07:16:20 +000021 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
22 2007-06-16 that prevented the TrueType module from loading most
23 glyphs.
David Turner8f626b02007-06-22 22:22:38 +000024
Werner Lemberg5b4d4352007-06-20 07:07:55 +0000252007-06-20 Werner Lemberg <wl@gnu.org>
26
27 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
28 change.
29
Werner Lemberg9fe58152007-06-19 07:57:30 +0000302007-06-19 Werner Lemberg <wl@gnu.org>
31
32 * src/type1/t1load.c (parse_encoding): Handle one more error.
33
Werner Lemberg5a829392007-06-19 04:53:30 +0000342007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
35
36 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
37 FNT_Err_Invalid_File_Format if file format was recognized but
38 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
39 Add verbose debug logs to make it easier to debug failing load
40 attempts.
41 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
42 so return an error if requested face index is > 0.
43 Do not do further attempt to load fonts if a previous attempt has
44 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
45 file format has been recognized but no fonts found in the file.
46
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000472007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
48
49 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
50 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
51 the compiler warnings against unused arguments.
52 (FT_ATSFontGetFileReference): Ditto.
53 (FT_GetFile_From_Mac_ATS_Name): Ditto.
54 (FT_New_Face_From_FSSpec): Ditto.
55 (lookup_lwfn_by_fond): Fix wrong comment.
56 Replace `const StringPtr' by more appropriate type
57 `ConstStr255Param'.
58 FSRefMakePathPath always returns UTF8 POSIX pathname in
59 Mach-O, thus HFS pathname support is dropped.
60 (count_faces): Remove HLock and HUnlock which is not
61 required on Mac OS X anymore.
62 (FT_New_Face_From_SFNT): Ditto.
63 (FT_New_Face_From_FOND): Ditto.
64 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
65 except of HFS pathname support and HLock/HUnlock.
66 They are required on classic CFM environment.
67
682007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +000069
Werner Lembergf9fa1c82007-06-18 17:00:05 +000070 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
71 assertion.
72 (ps_parser_to_bytes): Fix error message.
73
Werner Lembergbb2510d2007-06-18 17:07:49 +000074 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000075 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
76 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +000077 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +000078 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000079
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000802007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +000081
Werner Lembergf48aec72007-06-18 07:07:55 +000082 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
83 logic.
84 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
85 correctly.
86 (ps_parser_load_field_table): Use `fields->array_max' instead of
87 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
88
Werner Lemberg95104a42007-06-18 07:33:10 +000089 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
90 2007-06-06.
91
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000922007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +000093
94 * src/tools/ftrandom.c (font_size): New global variable.
95 (TestFace): Use it.
96 (main): Handle new option `--size' to set `font_size'.
97 (Usage): Updated.
98
Werner Lembergbe183eb2007-06-17 11:27:17 +000099 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
100 invalid font.
101 (FNT_Load_Glyph): Protect against invalid bitmap width.
102
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001032007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000104
Werner Lemberge12ed562007-06-17 05:31:23 +0000105 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
106 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000107
Werner Lemberge12ed562007-06-17 05:31:23 +0000108 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
109 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000110
Werner Lemberge12ed562007-06-17 05:31:23 +0000111 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
112 and `zp2'.
113 (Ins_IP): Check argument ranges to reject bogus operations properly.
114 (IUP_WorkerRec): Add `max_points' member.
115 (_iup_worker_interpolate): Check argument ranges.
116 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000117
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001182007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000119
120 * src/winfonts/winfnt.h: Add necessary structures for PE resource
121 parsing.
122 (WinPE32_HeaderRec): New structure.
123 (WinPE32_SectionRec): New structure.
124 (WinPE_RsrcDirRec): New structure.
125 (WinPE_RsrcDirEntryRec): New structure.
126 (WinPE_RsrcDataEntryRec): New structure.
127 (FNT_FontRec): Remove unused `size_shift' field.
128
129 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
130 loading bitmap .fon files in PE format.
131
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001322007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000133
134 * builds/win32/ftdebug.c: Unify debug level handling with other
135 platforms.
136
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001372007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000138
139 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
140 console as well as to the debugger.
141
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001422007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000143
144 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
145 cover all ranges which could possibly be handled by the aflatin
146 module (since the default fallback for unknown ranges is now the
147 afcjk module). It might be necessary to fine-tune this further by
148 splitting off modules for Greek, Cyrillic, or other blocks.
149
David Turnerb7920172007-06-11 05:37:35 +00001502007-06-11 David Turner <david@freetype.org>
151
Werner Lemberg49e18b82007-06-11 21:15:09 +0000152 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
153 incorrect segment linking computation. This was the root cause of
154 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000155
156
Werner Lemberg49e18b82007-06-11 21:15:09 +0000157 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
158 to improve the Latin auto-hinter. Note that the new code is
159 disabled by default since it is not stabilized yet.
160
161 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
162 (disabled currently).
163
164 * src/autofit/afhints.c: Remove dead code.
165 (af_axis_hints_new_edge): Add argument to handle segment directions.
166 (af_edge_flags_to_string): New function.
167 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
168 option flags.
169 (af_glyph_hints_reload): Add argument to handle inflections.
170 Simplify.
171 (af_direction_compute): Fine tuning.
172 (af_glyph_hints_align_edge_points): Fix logic.
173 (af_glyph_hints_align_strong_points): Do linear search for small
174 edge counts.
175 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
176 (af_iup_shift): Handle zero `delta'.
177
178 * src/autofit/afhints.h: Updated.
179 (AF_SORT_SEGMENTS): New macro (disabled).
180 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
181
182 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
183 argument to pass option flags for handling scripts.
184 * src/autofit/afglobal.h: Updated.
185
186 * src/autofit/afcjk.c: Updated.
187 * src/autofit/aflatin.c: Updated.
188 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
189
190 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
191 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
192 Don't set `edge->dir'
193 (af_latin_hint_edges): Add more logging.
194
195 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000196
Werner Lembergf6c120f2007-06-11 04:55:58 +00001972007-06-11 Werner Lemberg <wl@gnu.org>
198
Werner Lembergcf7b7642007-06-11 04:58:01 +0000199 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000200
David Turner84c6f882007-06-10 20:51:04 +00002012007-06-10 David Turner <david@freetype.org>
202
Werner Lembergf6c120f2007-06-11 04:55:58 +0000203 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
204 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000205
Werner Lembergf6c120f2007-06-11 04:55:58 +0000206 * include/freetype/config/ftoption.h: Clarify documentation
207 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000208
Werner Lembergf6c120f2007-06-11 04:55:58 +0000209
210 Add new `FT_Face_CheckTrueTypePatents' API.
211
212 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
213 declaration.
214
215 * include/freetype/internal/services/svttglyf.h,
216 src/base/ftpatent.c: New files.
217
218 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
219 New macro.
220
221 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
222 `ttpload.h'.
223 (tt_service_truetype_glyf): New service structure.
224 (tt_services): Register it.
225
226 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
227 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000228
Werner Lemberg33db39e2007-06-08 06:30:29 +00002292007-06-08 Werner Lemberg <wl@gnu.org>
230
David Turner84c6f882007-06-10 20:51:04 +0000231 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000232 Fonts without a cmap must be handled correctly by FreeType (anything
233 else would be a bug).
234
235
236 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
237 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
238
Werner Lemberg88ab6382007-06-07 05:01:56 +00002392007-06-07 Werner Lemberg <wl@gnu.org>
240
241 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
242 tt_sbit_decoder_load_image): Protect against integer overflows.
243
244
245 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
246 for `x_control' and `y_control'.
247
Werner Lemberg2a2dca62007-06-06 04:39:37 +00002482007-06-06 Werner Lemberg <wl@gnu.org>
249
250 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
251
Werner Lemberga8d65492007-06-06 04:47:49 +0000252
253 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
254 FreeType error.
255
Werner Lemberg470210b2007-06-06 10:05:49 +0000256
257 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
258 `font_count'.
259
260
261 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
262
263
264 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
265 `FT_Error'.
266 Check `fd_index'.
267 (cff_slot_load): Updated.
268 * src/cff/cffgload.h: Updated.
269
Werner Lemberg6c054752007-06-05 05:27:54 +00002702007-06-05 Werner Lemberg <wl@gnu.org>
271
272 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
273 (pfr_glyph_load_simple): Convert assertion into normal FreeType
274 error.
275 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000276 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
277 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000278
279 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
280
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000281
Werner Lemberg470210b2007-06-06 10:05:49 +0000282 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000283
Werner Lemberge5c14d92007-06-05 20:50:37 +0000284
285 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
286 in case of parsing error.
287 (ps_parser_load_field): Updated.
288
289 * src/type1/t1load.c (parse_font_matrix): Updated.
290
Werner Lembergad18b362007-06-04 07:04:05 +00002912007-06-04 Werner Lemberg <wl@gnu.org>
292
293 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
294
295 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
296
Werner Lemberg3d507fe2007-06-03 16:54:55 +00002972007-06-03 Werner Lemberg <wl@gnu.org>
298
Werner Lemberg99a320b2007-06-03 19:21:26 +0000299 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
300 George Williams (with some modifications).
301
3022007-06-03 Werner Lemberg <wl@gnu.org>
303
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000304 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
305 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
306 face == NULL. Suggested by Graham Asher.
307
Werner Lembergce280a22007-06-03 05:58:30 +00003082007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
309
310 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
311
Werner Lemberg5b591e42007-06-01 22:16:43 +00003122007-06-02 Werner Lemberg <wl@gnu.org>
313
314 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
315 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
316
317 * src/bdf/bdflib.c (bdf_load_font): Use them.
318
319 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
320
Werner Lembergb9933f42007-06-01 21:27:12 +00003212007-06-01 Werner Lemberg <wl@gnu.org>
322
323 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
324 (FTC_CMapCache_Lookup): Remove unused code.
325
Werner Lembergc793d902007-06-01 20:51:11 +00003262007-06-01 Sean McBride <sean@rogue-research.com>
327
328 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
329 unused.
330
Werner Lembergbebc7b12007-06-01 06:32:30 +00003312007-06-01 Werner Lemberg <wl@gnu.org>
332
333 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
334 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000335 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000336
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000337 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
338 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
339
Werner Lembergba03af62007-05-30 13:57:02 +00003402007-05-30 Werner Lemberg <wl@gnu.org>
341
342 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
343 against too small binary data strings.
344
345 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
346
David Turnerf0cd69c2007-05-28 15:42:09 +00003472007-05-28 David Turner <david@freetype.org>
348
Werner Lemberg99e0c182007-05-29 07:00:23 +0000349 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
350 transformation. This significantly reduces the loading time of CFF
351 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000352
Werner Lemberg99e0c182007-05-29 07:00:23 +0000353 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000354
Werner Lemberg99e0c182007-05-29 07:00:23 +0000355 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
356 hinting script to CJK, since it works well with more scripts than
357 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
358 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000359
Werner Lemberg1c8980e2007-05-25 07:11:12 +00003602007-05-25 Werner Lemberg <wl@gnu.org>
361
362 * docs/CHANGES: Updated.
363
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00003642007-05-24 Werner Lemberg <wl@gnu.org>
365
366 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
367 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
368
3692007-05-24 Graham Asher <graham.asher@btinternet.com>
370
371 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
372 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
373
David Turner0d0365e2007-05-22 09:53:44 +00003742007-05-22 David Turner <david@freetype.org>
375
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000376 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
377 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000378
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000379
380 Avoid heap blowup with very large .Z font files. This fixes
381 Savannah bug #19910.
382
383 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
384 `in_limit', `pad', `pad_bits', and `in_buff' members.
385 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
386 `buf_total' members.
387
388 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
389 only one argument.
390 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000391
3922007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000393
394 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
395 (ps_dimension_set_mask_bits): Remove `const'.
396
David Turner0d0365e2007-05-22 09:53:44 +00003972007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000398
399 * src/sfnt/ttmtx.c (tt_face_get_metrics)
400 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
401
Werner Lembergb826fa72007-05-19 07:18:48 +00004022007-05-19 Derek Clegg <dclegg@apple.com>
403
404 Savannah patch #5929.
405
406 * include/freetype/tttables.h, src/base/ftobjcs.c
407 (FT_Get_CMap_Format): New function.
408
409 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
410 `format' member.
411 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
412 cmap_info->format.
413
Werner Lemberg6f99c882007-05-19 07:01:49 +00004142007-05-19 Werner Lemberg <wl@gnu.org>
415
416 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
417 before handling subglyphs so that it can be reinitialized each time.
418 This fixes Savannah bug #19859.
419
Werner Lemberg95bc9d32007-05-16 15:19:42 +00004202007-05-16 Werner Lemberg <wl@gnu.org>
421
422 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
423 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
424 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
425 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
426 tt_face_get_metrics): Fix type-punning issues.
427
David Turner0a24bd22007-05-15 10:54:10 +00004282007-05-15 David Turner <david@freetype.org>
429
430 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000431 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
432 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000433 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000434 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000435
Werner Lemberg607dec72007-05-15 06:49:37 +00004362007-05-15 Graham Asher <graham.asher@btinternet.com>
437
438 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
439 variable.
440 * src/autofit/afloader.c (af_loader_load_g): Ditto.
441
442 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
443 (open_face_from_buffer): Initialize `stream'.
444 (FT_Request_Metrics): Remove unused variable.
445 Remove redundant `break' statements.
446 (FT_Get_Track_Kerning): Remove unused variable.
447
448 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
449 afm_parse_kern_data): Remove redundant
450 `break' statements.
451 (afm_parser_parse): Ditto.
452 Don't use uninitialized variables.
453
454 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
455 Use `|' operator instead of `^' to set it.
456 Update all users.
457
458 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
459 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
460
461 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
462 comparison.
463 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
464 (TT_Load_Glyph): Remove unused variable.
465
Werner Lemberg8d463a52007-05-13 16:01:55 +00004662007-05-13 Derek Clegg <dclegg@apple.com>
467
468 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
469 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
470
David Turner711cf842007-05-11 14:36:24 +00004712007-05-11 David Turner <david@freetype.org>
472
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000473 * src/cache/ftbasic.c, include/freetype/ftcache.h
474 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
475 functions that allow us to look up glyphs using an FTC_Scaler object
476 to specify the size, making it possible to use fractional pixel
477 sizes.
478
479 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
480 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000481
Werner Lemberg94be20e2007-05-09 20:02:55 +00004822007-05-09 Graham Asher <graham.asher@btinternet.com>
483
484 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
485 (af_latin_metrics_scale_dim): Fix compiler warnings.
486
Werner Lemberg41271032007-05-06 04:51:48 +00004872007-05-06 Werner Lemberg <wl@gnu.org>
488
489 * builds/win32/visualce/freetype.sln: Removed, as requested by
490 Vincent.
491
Werner Lembergdf49e692007-05-04 06:30:05 +00004922007-05-04 Vincent RICHOMME <richom.v@free.fr>
493
494 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
495 PC targets.
496
497 * docs/CHANGES: Document them.
498
4992007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000500
501 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
502 mmap (which might happen on some RTOS). From Savannah patch #5909.
503
Werner Lemberg106eaf12007-05-03 07:07:47 +00005042007-05-03 Werner Lemberg <wl@gnu.org>
505
506 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
507 * include/freetype/freetype.h (FT_Set_Char_Size): Update
508 documentation.
509
Werner Lemberg1b5267d2007-04-28 21:06:15 +00005102007-04-28 Victor Stinner <victor.stinner@inl.fr>
511
512 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
513 `cmap'.
514
Werner Lembergcc712a22007-04-27 17:16:50 +00005152007-04-27 Werner Lemberg <wl@gnu.org>
516
517 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
518 number of points in contours. Problem reported by Victor Stinner
519 <victor.stinner@haypocalc.com>.
520 (TT_Process_Simple_Glyph): Synchronize variable types.
521
Werner Lemberg45bb18f2007-04-26 06:26:35 +00005222007-04-26 Werner Lemberg <wl@gnu.org>
523
524 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
525 zero in case of error. This fixes Savannah bug #19689.
526
David Turnera8b45e62007-05-11 14:10:30 +00005272007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
528
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000529 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
530 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000531
Werner Lembergfcc1f472007-04-10 11:51:50 +00005322007-04-10 Martin Horak <horakm@centrum.cz>
533
534 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
535 Ignore `hhea' table. This fixes Savannah bug #19261.
536
Werner Lemberg14bf82e2007-04-10 04:09:49 +00005372007-04-09 Werner Lemberg <wl@gnu.org>
538
539 * Version 2.3.4 released.
540 =========================
541
542
543 Tag sources with `VER-2-3-4'.
544
545 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
546 version number to 2.3.4.
547
548 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
549 builds/win32/visualc/freetype.dsp,
550 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
551
552 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
553
554 * builds/unix/configure.raw (version_info): Set to 9:15:3.
555
Werner Lembergf4a52a62007-04-09 08:40:11 +00005562007-04-09 Martin Horak <horakm@centrum.cz>
557
558 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
559 memory stream to avoid a crash with the incremental memory
560 interface (Savannah bug #19260).
561
David Turner1dcb4442007-04-06 08:19:04 +00005622007-04-06 David Turner <david@freetype.org>
563
Werner Lembergc81cf612007-04-06 09:28:23 +0000564 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
565 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000566
Werner Lemberg9f83e052007-04-05 02:28:23 +00005672007-04-04 Werner Lemberg <wl@gnu.org>
568
569 * Version 2.3.3 released.
570 =========================
571
572
573 Tag sources with `VER-2-3-3'.
574
575 * docs/CHANGES: Mention CVE-2007-1351.
576
David Turner7338ec22007-04-03 14:30:34 +00005772007-04-03 David Turner <david@freetype.org>
578
579 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000580 if one of the resolution values is 0, treat it as if it were the
581 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000582
David Turnere6472c12007-04-02 13:13:54 +00005832007-04-02 David Turner <david@freetype.org>
584
Werner Lemberg94f12272007-04-03 07:19:53 +0000585 Add special code to detect `extra-light' fonts and do not snap their
586 stem widths too much to avoid bizarre hinting effects.
587
588 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
589 `extra_light' members.
590
591 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
592 them.
593 (af_latin_metrics_scale_dim): Set `extra_light'.
594 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000595
David Turner3f539692007-03-28 14:53:40 +00005962007-03-28 David Turner <david@freetype.org>
597
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000598 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000599 padding.
600
Werner Lemberga08b2172007-03-28 07:17:17 +00006012007-03-28 Werner Lemberg <wl@gnu.org>
602
603 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
604 gracefully.
605 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000606 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000607 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
608 number of code points in Unicode.
609
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000610 * builds/win32/visualc/index.html,
611 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000612 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000613 s/232/233/.
614
615 * docs/CHANGES: Mention ftdiff.
616
David Turner3b242d32007-03-26 12:03:04 +00006172007-03-26 David Turner <david@freetype.org>
618
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000619 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
620 corresponding code.
621 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000622
Werner Lemberga08b2172007-03-28 07:17:17 +0000623 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000624 computations in order to ignore single-point contours. These are
625 never rasterized and correspond in certain fonts to mark-attach
626 points that are very far from the glyph's real outline, ruining the
627 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000628
Werner Lemberga08b2172007-03-28 07:17:17 +0000629 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000630 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000631 Otherwise code that uses them will most certainly ruin the fixed
632 advance property.
David Turner23553d62007-03-26 13:37:17 +0000633
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000634 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
635 documentation and bump version number to 2.3.3.
636
637 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
638
639 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000640
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00006412007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
642
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000643 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
644 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000645 * builds/vms/ftconfig.h: Ditto.
646 * include/freetype/config/ftconfig.h: Ditto.
647
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00006482007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
649
Werner Lemberg14ffe092007-03-22 06:12:43 +0000650 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
651 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000652 proposed by Sean McBride:
653 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
654
6552007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
656
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000657 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
658 setjmp, proposed by Sean McBride:
659 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
660
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00006612007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
662
Werner Lembergc9f6c662007-03-21 13:30:14 +0000663 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
664 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
665 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000666
David Turner74c34eb2007-03-18 07:19:31 +00006672007-03-18 David Turner <david@freetype.org>
668
Werner Lembergc9f6c662007-03-21 13:30:14 +0000669 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
670 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000671
Werner Lembergc9f6c662007-03-21 13:30:14 +0000672 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000673
David Turner89020d92007-03-17 17:48:57 +00006742007-03-17 David Turner <david@freetype.org>
675
Werner Lembergc9f6c662007-03-21 13:30:14 +0000676 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
677 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000678
Werner Lemberg25d592a2007-03-09 07:59:35 +00006792007-03-09 Werner Lemberg <wl@gnu.org>
680
681 * Version 2.3.2 released.
682 =========================
683
684
685 Tag sources with `VER-2-3-2'.
686
687 * builds/win32/visualc/index.html,
688 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000689 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000690 s/231/232/.
691
David Turner3a51afa2007-03-08 10:50:38 +00006922007-03-08 David Turner <david@freetype.org>
693
Werner Lemberg25d592a2007-03-09 07:59:35 +0000694 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000695
Werner Lemberg25d592a2007-03-09 07:59:35 +0000696 * builds/unix/configure.raw (version_info): Set to 9:13:3.
697
698 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
699
700 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000701
Werner Lemberg1e259de2007-03-08 15:39:21 +0000702 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
703 function to work properly, over-writing user-provided buffers in
704 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000705
David Turner121cad52007-03-08 16:43:50 +0000706
Werner Lemberg3d92f082007-03-06 11:59:24 +00007072007-03-05 Werner Lemberg <wl@gnu.org>
708
709 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
710 macro for `strstr'.
711
712 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
713 `trick_names', as suggested by Ivan Nincic.
714
David Turner085bc6e2007-03-05 17:40:03 +00007152007-03-05 David Turner <david@freetype.org>
716
Werner Lembergd112cf02007-03-06 12:06:56 +0000717 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
718 case FT_Init_FreeType fails for some reason. Problem reported by
719 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000720
Werner Lembergd112cf02007-03-06 12:06:56 +0000721 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
722 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
723 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
724 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000725
Werner Lembergd112cf02007-03-06 12:06:56 +0000726 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
727 signed values, not unsigned ones. Problem reported by Johannes
728 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000729
David Turner601aefe2007-02-21 16:47:49 +00007302007-02-21 David Turner <david@freetype.org>
731
Werner Lembergde5e6862007-02-25 21:06:43 +0000732 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
733 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000734
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00007352007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
736
737 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
738 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
739 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
740
Werner Lemberga0915172007-02-16 08:12:50 +00007412007-02-16 Werner Lemberg <wl@gnu.org>
742
743 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
744 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
745
David Turner2c4500e2007-02-14 15:08:47 +00007462007-02-14 David Turner <david@freetype.org>
747
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000748 It seems that the following changes fix most of the known
749 interpreter problems with my fonts, but more testing is needed,
750 though.
751
752 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
753 (TT_MulFix14): Rewrite.
754 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
755 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000756
Werner Lembergc6a14082007-02-12 22:08:15 +00007572007-02-12 Werner Lemberg <wl@gnu.org>
758
759 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
760 warnings.
761
762 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
763 (bdf_interpret_style): Ditto.
764
David Turnerc0f9c4a2007-02-12 14:55:03 +00007652007-02-12 David Turner <david@freetype.org>
766
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000767 Simplify projection and dual-projection code interface.
768
Werner Lemberg406d25f2007-02-12 22:01:18 +0000769 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
770 FT_Vector' as argument type.
771 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
772 Updated.
773 (CUR_fast_project, CUR_fast_dualproj): New macros.
774 (Project, Dual_Project, Project_x, Project_y): Updated.
775 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
776 macros.
777
778
779 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
780 adjustments for the non-light auto-hinted modes. Gets rid of
781 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000782
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000783 * src/autofit/aflatin.c (af_latin_hints_link_segments,
784 af_latin_hints_compute_edges): Slight optimization of the segment
785 linker and better handling of serif segments to get rid of broken
786 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000787
David Turnerc0f9c4a2007-02-12 14:55:03 +0000788
Werner Lemberg442bfb82007-02-12 21:44:10 +0000789 Introduce new string functions and the corresponding macros to get
790 rid of various uses of strcpy and other `evil' functions, as well as
791 to simplify a few things.
792
793 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
794 ft_mem_strcpyn): New declarations.
795 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
796 macros.
797 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
798 functions.
799
800 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
801 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
802 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
803 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
804 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
805 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
806 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
807 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000808
Werner Lemberg406d25f2007-02-12 22:01:18 +0000809 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
810
Werner Lemberg582067d2007-02-11 15:03:05 +00008112007-02-11 Werner Lemberg <wl@gnu.org>
812
813 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
814 non-spacing glyphs.
815
Werner Lemberg8f474532007-02-07 08:31:01 +00008162007-02-07 Tom Parker <palfrey@tevp.net>
817
818 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
819 pointer.
820
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008212007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
822
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000823 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
824 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000825 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000826 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
827 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
828 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
829 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000830
831 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
832 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000833 * builds/mac/ftmac.c: Ditto.
834
8352007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
836
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000837 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000838 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000839 #include <ftmac.c>.
840
8412007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
842
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000843 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
844 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
845 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
846 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
847 FT_GetFilePath_From_Mac_ATS_Name.
848 * builds/mac/ftmac.c: Ditto.
849
8502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
851
Werner Lembergdcbb7082007-02-08 08:54:09 +0000852 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000853 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
854 for passing to FT_New_Face_From_FSSpec.
855
8562007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
857
Werner Lembergdcbb7082007-02-08 08:54:09 +0000858 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000859 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000860
861 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
862 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000863 * builds/mac/ftmac.c (OS_INLINE): Ditto.
864
Werner Lemberg313d7772007-02-01 08:10:45 +00008652007-02-01 Werner Lemberg <wl@gnu.org>
866
867 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
868 Explain why applications shouldn't use it. Found by Alexei.
869
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008702007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000871
872 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
873 message.
874
875 * src/gxvalid/gxvmort1.c
876 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
877 message.
878
Werner Lemberg53935932007-01-31 08:53:02 +00008792007-01-31 Werner Lemberg <wl@gnu.org>
880
881
882 * Version 2.3.1 released.
883 =========================
884
885
886 Tag sources with `VER-2-3-1-FINAL'.
887
888 * builds/win32/visualc/freetype.dsp,
889 builds/win32/visualc/freetype.vcproj: s/230/231/.
890 * builds/win32/visualc/index.html: s/221/231/.
891
892 * vms_make.com: Add `ftgasp'.
893
David Turnera7ee6082007-01-30 10:33:53 +00008942007-01-30 David Turner <david@freetype.org>
895
Werner Lemberg53935932007-01-31 08:53:02 +0000896 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000897
Werner Lemberg53935932007-01-31 08:53:02 +0000898 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000899
Werner Lemberg25d592a2007-03-09 07:59:35 +0000900 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000901 s/2.3.0/2.3.1/.
902
903 * builds/unix/configure.raw (version_info): Set to 9:12:3.
904
905
906 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
907 (af_loader_load_g): Disable the warper (i.e., the light hinting
908 improvements) to make a 2.3.1 bugfix release before introducing a
909 new feature. This should give us more time to tune and improve the
910 warper for the next release.
911
912 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000913
David Turnerd91eebd2007-01-26 15:05:41 +00009142007-01-25 David Turner <david@freetype.org>
915
Werner Lembergbf241762007-01-26 16:08:49 +0000916 For light auto-hinting, improve glyph advance widths and resurrect
917 normal/full hinting to its normal quality.
918
919 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
920 and `xmax_delta'.
921 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
922 and `xmax_delta'.
923
924 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
925 preprocessor conditional with if-clause, handling both light and
926 normal mode.
927
928 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
929 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000930
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00009312007-01-25 Werner Lemberg <wl@gnu.org>
932
933 * docs/release: Updated -- Savannah uses a new uploading scheme.
934
David Turnera42567b2007-01-25 12:23:37 +00009352007-01-25 David Turner <david@freetype.org>
936
Werner Lembergd7855662007-01-25 13:53:56 +0000937 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000938
Werner Lembergd7855662007-01-25 13:53:56 +0000939 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
940 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
941 functions.
David Turnera42567b2007-01-25 12:23:37 +0000942
Werner Lembergd7855662007-01-25 13:53:56 +0000943 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000944
Werner Lembergb1be9e82007-01-25 11:50:00 +00009452007-01-25 Werner Lemberg <wl@gnu.org>
946
947 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000948 correctly in a sanity check. Since this function is only used to
949 load local and global functions, any charstring that called the last
950 local/global function would fail otherwise. This fixes Savannah bug
951 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000952
953 * docs/CHANGES: Document it.
954
David Turnerb6de8d12007-01-23 15:51:50 +00009552007-01-23 David Turner <david@freetype.org>
956
Werner Lembergb1be9e82007-01-25 11:50:00 +0000957 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
958 prevented compilation when disabling both the unpatented and the
959 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000960
Werner Lembergb1be9e82007-01-25 11:50:00 +0000961
962 Fix and enable the warper to improve `light' hinting mode. This is
963 not necessarily a final version, but it seems to work well.
964
965 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
966 Disable code.
967 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
968 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
969
970 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
971 (af_warper_compute_line_best): Fix array size of `scores'.
972 (af_warper_compute): Better handling of border cases.
973 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
974 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000975
Werner Lemberg011d1112007-01-21 09:36:00 +00009762007-01-21 Werner Lemberg <wl@gnu.org>
977
Werner Lemberg42b63b22007-01-21 21:01:33 +0000978 * ChangeLog: Split off older entries into...
979 * ChangeLog.22: This new file.
980
9812007-01-21 Werner Lemberg <wl@gnu.org>
982
Werner Lemberg555258f2007-01-21 09:46:37 +0000983 * docs/CHANGES: Document SHZ fix.
984
9852007-01-21 George Williams <gww@silcom.com>
986
987 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
988 points.
989
9902007-01-21 Werner Lemberg <wl@gnu.org>
991
Werner Lemberg011d1112007-01-21 09:36:00 +0000992 * src/sfnt/ttmtx.c (tt_face_get_metrics)
993 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
994
Werner Lemberg87a5a432007-01-17 12:44:39 +00009952007-01-17 Werner Lemberg <wl@gnu.org>
996
Werner Lembergb8003292007-01-17 12:56:25 +0000997
998 * Version 2.3.0 released.
999 =========================
1000
1001
1002 Tag sources with `VER-2-3-0-FINAL'.
1003
10042007-01-17 Werner Lemberg <wl@gnu.org>
1005
Werner Lemberg87a5a432007-01-17 12:44:39 +00001006 * docs/release: Updated.
1007
David Turner22122722007-01-16 20:06:44 +000010082007-01-16 David Turner <david@freetype.org>
1009
Werner Lemberg87a5a432007-01-17 12:44:39 +00001010 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1011 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1012 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1013 warnings.
David Turner22122722007-01-16 20:06:44 +00001014
Werner Lemberg267e1d72007-01-15 07:48:09 +000010152007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1016
1017 * builds/amiga/makefile, builds/amiga/makefile.os4,
1018 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1019
1020 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1021
Werner Lemberg8c4120d2007-01-15 06:42:40 +000010222007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1023
1024 Fix various compiler warnings.
1025
1026 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1027 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1028 s/index/strike_index/.
1029 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1030
1031 * src/gxvalid/gxvmorx5.c
1032 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1033
1034 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1035 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1036 uninitialized variables.
1037
Werner Lemberg6164a9d2007-01-13 23:01:36 +000010382007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1039
1040 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1041
Werner Lemberg281c1482007-01-13 22:50:51 +000010422007-01-13 Werner Lemberg <wl@gnu.org>
1043
1044 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1045 versions up to 0x3FF without complaining.
1046
Werner Lembergac250b22007-01-13 14:01:36 +000010472007-01-13 Derek Clegg <dclegg@apple.com>
1048
1049 Add FT_Get_PS_Font_Info interface to CFF driver.
1050
1051 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1052 (CFF_FontRec): Add `font_info' field.
1053
1054 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1055 (cff_font_done): Free font->font_info if necessary.
1056
1057 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1058 (cff_service_ps_info): Register cff_ps_get_font_info.
1059
Werner Lemberg23df31a2007-01-13 08:45:00 +000010602007-01-13 Werner Lemberg <wl@gnu.org>
1061
1062 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1063 with C++ compiler.
1064
1065 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1066 af_glyph_hints_dump_edges): Ditto.
1067
1068 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1069 `modules.cfg').
1070
1071 * src/sfnt/ttsbit0.h: Remove.
1072
1073 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1074
Werner Lemberg27cf9de2007-01-13 07:34:23 +000010752007-01-12 David Turner <david@freetype.org>
1076
1077 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1078 bug in the bitmap emboldener if the pitch of the source bitmap is
1079 much larger than its width.
1080
1081 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1082 compilation warning.
1083
Werner Lemberg6d96d312007-01-12 10:30:19 +000010842007-01-12 Werner Lemberg <wl@gnu.org>
1085
1086 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1087 `automake' CVS module from sources.redhat.com.
1088
Werner Lemberg17432b52007-01-12 09:28:44 +000010892007-01-11 Werner Lemberg <wl@gnu.org>
1090
1091 * src/type1/t1load.c (is_space): Removed.
1092 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1093 (parse_charstrings): Use IS_PS_TOKEN.
1094
1095
1096 * autogen.sh: Avoid bash specific syntax.
1097
David Turner038ace22007-01-11 15:00:59 +000010982007-01-11 David Turner <david@freetype.org>
1099
Werner Lemberg17432b52007-01-12 09:28:44 +00001100 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001101
Werner Lemberg17432b52007-01-12 09:28:44 +00001102 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001103
Werner Lemberg17432b52007-01-12 09:28:44 +00001104 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1105 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001106 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001107
Werner Lemberg17432b52007-01-12 09:28:44 +00001108 * autogen.sh: Small fix to get it working on Mac OS X properly:
1109 The issue is that GNU libtool is called `glibtool' on this platform,
1110 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001111
David Turner2628ea92007-01-10 13:15:56 +000011122007-01-10 David Turner <david@freetype.org>
1113
Werner Lemberg17432b52007-01-12 09:28:44 +00001114 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1115 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001116
Werner Lemberg17432b52007-01-12 09:28:44 +00001117 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1118 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1119 version number to 2.3.0.
1120
1121 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1122 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001123
1124 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001125 include/freetype/ftlcdfil.h: Update reference documentation with
1126 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001127
Werner Lemberg17432b52007-01-12 09:28:44 +00001128 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1129 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001130
Werner Lembergbf02d392007-01-10 07:07:37 +000011312007-01-10 Derek Clegg <dclegg@apple.com>
1132
1133 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1134 values.
1135
David Turnerf48b60e2007-01-08 15:15:32 +000011362007-01-08 David Turner <david@freetype.org>
1137
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001138 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001139
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001140 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1141 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001142 corresponding to a given character pixel size.
1143
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001144 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1145 `gasp' table, in order to avoid potential problems with later
1146 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001147
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001148 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1149 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001150
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001151 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1152 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1153 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1154 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001155
Werner Lemberge6b6f372007-01-07 00:06:47 +000011562007-01-07 Werner Lemberg <wl@gnu.org>
1157
Werner Lembergb8004d22007-01-07 09:13:38 +00001158 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1159 Type 11 fonts.
1160 Scan for `/sfnts' token.
1161
11622007-01-07 Werner Lemberg <wl@gnu.org>
1163
1164 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001165
Werner Lembergbe5f7972007-01-06 07:51:48 +000011662007-01-06 Werner Lemberg <wl@gnu.org>
1167
1168 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1169 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1170
David Turnera8cf42b2007-01-04 16:46:46 +000011712007-01-04 David Turner <david@freetype.org>
1172
Werner Lembergf6294392007-01-06 07:47:45 +00001173 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1174 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001175
Werner Lembergf6294392007-01-06 07:47:45 +00001176
1177 Do not allocate interpreter-specific tables in memory if we are not
1178 going to load glyphs with the bytecode interpreter anyway.
1179
1180 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1181 only if glyph is hinted.
1182 Updated.
1183 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1184 and `cvs_ready'.
1185 Add `tt_size_ready_bytecode' declaration.
1186 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1187 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1188 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1189 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1190 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001191
David Turner91a34022007-01-05 14:47:08 +00001192
Werner Lembergf6294392007-01-06 07:47:45 +00001193 Don't extract the metrics table from the SFNT font file. Instead,
1194 reparse it on each glyph load. The runtime difference is not
1195 noticeable, and it can save a lot of heap memory when memory-mapped
1196 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001197
Werner Lembergf6294392007-01-06 07:47:45 +00001198 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1199 `horz_metrics_offset' and `vert_metrics_ofset'.
1200 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1201 Updated.
1202
1203
1204 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1205
1206
1207 Do not load the CFF index offsets into memory, since this wastes a
1208 *lot* of heap memory with large Asian CFF fonts. There is no
1209 significant performance loss.
1210
1211 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1212 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1213 `data_size'.
1214 (CFF_CharsetRec): Add field `num_glyphs'.
1215
1216 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1217 cff_charset_cid_to_gindex): New functions.
1218 (cff_new_index): Renamed to...
1219 (cff_index_init): This. Update all callers.
1220 Updated -- some code has been moved to `cff_index_load_offsets'.
1221 (cff_done_index): Renamed to...
1222 (cff_index_done): This. Update all callers.
1223 (cff_index_get_pointers, cff_index_access_element): Updated to use
1224 stream offsets.
1225 (cff_charset_compute_cids): Set `num_glyphs' field.
1226 (cff_encoding_load): Updated.
1227
1228 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001229
12302007-01-04 David Turner <david@freetype.org>
1231
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001232 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1233 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001234
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001235 * README.CVS: Add common problem description and solution
1236 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001237
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001238 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001239
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001240 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001241
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001242 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001243
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001244 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1245 (TWorker): This.
1246 Remove `count_table' and `memory'.
1247 Make `grays' a pointer.
1248 (TRaster): New structure.
1249 (count_table): New static array.
1250 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1251 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1252 ft_black_set_mode, ft_black_render): Updated.
1253 (ft_black_init): Don't initialize `count_table'.
1254 (ft_black_reset): Use the render pool. This saves about 6KB of
1255 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001256
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001257 * src/smooth/ftgrays.c (TRaster): Replaced with...
1258 (TWorker): This.
1259 Remove `memory'.
1260 (TRaster): New structure.
1261
1262 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1263 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1264 gray_render_span, gray_raster_render): Updated.
1265 (gray_raster_reset): Use the render pool. This saves about 6KB of
1266 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001267
David Turner8a6c44e2007-01-04 17:03:11 +00001268 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1269 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001270 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1271 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1272 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001273
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001274 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1275 Remove a typo that results in no hinting and a memory leak with some
1276 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001277
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001278 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001279 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001280 CFF_Faces in it. We need to close all faces before destroying the
1281 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001282
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000012832007-01-02 Werner Lemberg <wl@gnu.org>
1284
1285 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1286 Remove compiler warning.
1287
David Turner9207e002007-01-02 16:58:13 +000012882007-01-02 David Turner <david@freetype.org>
1289
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001290 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001291
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000012922006-12-31 Masatake YAMATO <jet@gyve.org>
1293
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001294 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1295 function.
1296 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001297 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001298 `gxv_kern_subtable_fmt0_pairs_validate'.
1299
David Turner115b4422006-12-22 11:37:05 +000013002006-12-22 David Turner <david@freetype.org>
1301
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001302 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1303 warnings.
David Turner115b4422006-12-22 11:37:05 +00001304
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001305 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1306 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001307
Werner Lemberg4755bf72006-12-16 08:58:44 +000013082006-12-16 Anders Kaseorg <anders@kaseorg.com>
1309
1310 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1311 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1312
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000013132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1314
Werner Lemberg9b774e22007-01-16 06:11:27 +00001315 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001316 sync with the modification by Jens Claudius on 2006-08-22; cf.
1317 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 +00001318
13192006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1320
1321 * src/base/ftmac.c: Specialized for Mac OS X only.
1322 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1323 * builds/unix/configure.raw: Ditto. When explicit switches for
1324 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1325 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1326
13272006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1328
1329 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1330 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1331 instead of src/base/ftmac.c
1332 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1333 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1334 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1335 that cannot be built at present.
1336
13372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1338
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001339 * src/base/ftobjs.c: Improvement of resource fork handler for
1340 POSIX, cf.
1341 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001342 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1343 format or .dfont, to simulate the face index number counted by ftmac.c.
1344 (IsMacResource): Return the number of scalable faces correctly.
1345
Werner Lembergec5b4502006-12-10 07:51:38 +000013462006-12-10 Werner Lemberg <wl@gnu.org>
1347
1348 * builds/toplevel.mk (version): Protect against `distclean' target.
1349
Werner Lembergb26b3142006-12-09 20:01:43 +000013502006-12-09 Werner Lemberg <wl@gnu.org>
1351
1352 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1353 or `type'.
1354
1355 * builds/freetype.mk (version): Extracted from freetype.h, using
1356 GNU make's built-in string functions.
1357 (refdoc): Use $(version) instead of static version number.
1358
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000013592006-12-08 Werner Lemberg <wl@gnu.org>
1360
1361 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1362
Werner Lemberg15c29502006-12-09 07:29:54 +000013632006-12-08 Vladimir Volovich <vvv@vsu.ru>
1364
1365 * src/tools/apinames (State): Remove final comma in structure -- xlc
1366 v5 under AIX 4.3 doesn't like this.
1367
David Turnerdbf3b432006-12-07 21:18:09 +000013682006-12-07 David Turner <david@freetype.org>
1369
Werner Lemberg256a3512006-12-08 06:49:33 +00001370 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1371 to the spacing of auto-fitted glyphs. This only impacts rare
1372 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001373
Werner Lemberg11171312006-12-03 09:43:40 +000013742006-12-03 Werner Lemberg <wl@gnu.org>
1375
1376 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1377
Werner Lemberg960ba592006-12-01 08:20:47 +000013782006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001379
Werner Lemberg960ba592006-12-01 08:20:47 +00001380 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1381 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1382 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001383
David Turner80658e52006-11-28 08:09:20 +00001384
Werner Lemberg960ba592006-12-01 08:20:47 +00001385 * include/freetype/ftxf86.h: Fix and extend comment so that it
1386 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001387
Werner Lemberg960ba592006-12-01 08:20:47 +00001388 * include/freetype/ftchapters.h: Add `font_format' section.
1389
1390
1391 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1392 to TOC in index page.
1393
13942006-11-28 David Turner <david@freetype.org>
1395
1396 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1397 trying to render into a zero-width/height bitmap, not an error code.
1398
1399 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1400
1401 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1402 ones instead.
1403
1404 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1405 variable.
David Turner80658e52006-11-28 08:09:20 +00001406
Werner Lemberg8636c292006-11-26 22:28:13 +000014072006-11-26 Pierre Hanser <hanser@club-internet.fr>
1408
1409 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1410
Werner Lemberg960ba592006-12-01 08:20:47 +000014112006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001412
Werner Lemberg960ba592006-12-01 08:20:47 +00001413 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1414 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1415 Add stubs to link the `ftgrid' test program when debugging is
1416 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001417
Werner Lemberg960ba592006-12-01 08:20:47 +000014182006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001419
1420 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001421 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1422
1423 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1424 Emit more sensible information.
1425
1426 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1427
1428 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1429 rounding of blue values.
1430 (af_latin_hints_compute_segments): Hint segment heights.
1431 (af_latin_hints_link_segments): Reduce `len_score' value.
1432 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1433 value and use `height' member for comparisons.
1434 (af_latin_hint_edges): Extend logging message.
1435 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001436
Werner Lemberg91959bf2006-11-22 10:36:55 +000014372006-11-22 Werner Lemberg <wl@gnu.org>
1438
1439 Fix Savannah bug #15553.
1440
1441 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1442 program after a change from mono to grayscaling (and vice versa).
1443 Use correct constant for comparison to get `exec->grayscale'.
1444
Werner Lemberg913a3652006-11-19 09:19:17 +000014452006-11-18 Werner Lemberg <wl@gnu.org>
1446
1447 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001448 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001449 This patch fixes Savannah bug #18301.
1450
1451 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1452 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1453 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1454 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1455 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1456 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1457 (FNT_Load_Glyph): Check validity of `glyph_index'.
1458
David Turner7bab6ae2006-11-13 11:25:06 +000014592006-11-13 David Turner <david@freetype.org>
1460
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001461 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1462 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001463
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001464 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1465 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1466 when building the library to change the default LCD filter to be
1467 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001468
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001469 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001470
David Turner8765c712006-11-10 16:49:42 +000014712006-11-10 David Turner <david@freetype.org>
1472
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001473 * src/smooth/ftsmooth.c: API change for the LCD
1474 filter. The FT_LcdFilter value is an enumeration describing which
1475 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1476 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1477 algorithm which produces strong color fringes for everything
1478 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001479
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001480 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1481 second parameter to an enum type.
1482
1483 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1484 (_ft_lcd_filter): Rename to...
1485 (_ft_lcd_filter_fir): This.
1486 Update parameters.
1487 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1488 (FT_Library_Set_LcdFilter): Update parameters.
1489 Handle new filter modes.
1490
1491 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1492 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1493 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1494 callback and update other fields.
1495
1496 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1497 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1498 Other minor improvements.
1499
1500 * src/autofit/aflatin.c: Various tiny improvements that drastically
1501 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1502 (af_latin_hints_compute_edges): Fix typo.
1503 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001504
David Turner4e9cc3c2006-11-09 16:31:52 +000015052006-11-09 David Turner <david@freetype.org>
1506
Werner Lemberg49c77a82006-11-09 21:51:57 +00001507 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1508 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001509
Werner Lemberg5e430892006-11-07 09:35:03 +000015102006-11-07 Zhe Su <james.su@gmail.com>
1511
1512 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1513 also.
1514
Werner Lemberg111b5ae2006-11-03 09:40:12 +000015152006-11-03 Werner Lemberg <wl@gnu.org>
1516
1517 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1518
David Turner40604742006-11-02 16:37:35 +000015192006-11-02 David Turner <david@freetype.org>
1520
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001521 Add a few tweaks to better handle serif fonts.
1522 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001523
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001524 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1525 segments that are less than 1.5 pixels high. This gets rid of
1526 *many* corner cases with serifs.
1527 (af_latin_align_linked_edge): Add logging message.
1528 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1529 Add logging messages.
1530 Handle AF_EDGE_FLAG flag specially.
1531
1532 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1533 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1534
1535 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1536 Update external declarations.
1537 (af_corner_orientation, af_corner_is_flat): Replaced by...
1538
1539 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1540 ft_corner_is_flat): These declarations.
1541
1542 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1543 Comment out. Replaced by...
1544
1545 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1546 These functions. Update all callers.
1547 (FT_Add64) [!FT_LONG64]: Simplify.
1548
1549 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1550 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1551 production of garbage by missing lots of segments.
1552
1553 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1554
1555 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1556 [AF_DEBUG]: Set _af_debug_hints.
1557
1558
1559 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1560 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1561 and ft_corner_orientation.
1562
1563
1564 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001565
Werner Lemberge88c5262006-10-24 05:46:26 +000015662006-10-24 Werner Lemberg <wl@gnu.org>
1567
1568 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1569
1570 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1571 as argument.
1572
David Turnera1861392006-10-23 16:00:59 +000015732006-10-23 Zhe Su <zsu@novell.com>
1574
Werner Lemberg715e96e2006-10-24 05:28:45 +00001575 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1576 better deal with broken Asian fonts with strange glyphs, having
1577 self-intersections and other peculiarities. The used algorithm is
1578 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001579
David Turnere140f142006-10-23 08:56:57 +000015802006-10-23 David Turner <david@freetype.org>
1581
Werner Lemberg715e96e2006-10-24 05:28:45 +00001582 Speed up the CFF font loader. With some large CFF fonts,
1583 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001584
Werner Lemberg715e96e2006-10-24 05:28:45 +00001585 * src/cff/cffload.c (cff_get_offset): Removed.
1586 (cff_new_index): Inline functionality of `cff_get_offset'.
1587 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1588 (cff_charset_done): Call `cff_charset_free_cids'.
1589 (cff_charset_load): Call `cff_charset_compute_cids'.
1590 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1591
1592 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1593 with FT_NEXT_XXX.
1594
1595
1596 Speed up the Postscript hinter, with more than 100% speed increase
1597 on my machine.
1598
1599 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1600 psh_corner_orientation): New functions.
1601 (psh_glyph_compute_inflections): Merge loops for efficiency.
1602 Use `psh_corner_orientation'.
1603 (psh_glyph_init): Use `psh_corner_is_flat'.
1604 (psh_hint_table_find_strong_point): Renamed to...
1605 (psh_hint_table_find_strong_points): This.
1606 Rewrite, adding argument to handle all points at once.
1607 Update all callers.
1608 (PSH_MAX_STRONG_INTERNAL): New macro.
1609 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001610
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000016112006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1612
1613 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001614 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001615
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000016162006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1617
1618 * docs/INSTALL.CROSS: New document file for cross-building.
1619
1620 * builds/unix/configure.raw: Preliminary cross-building support.
1621 Find native C compiler and pass it by CC_BUILD, and
1622 find suffix for native executable and pass it by EXEEXT_BUILD.
1623 Also suffix for target executable is passed by EXEEXT.
1624
Werner Lembergb9e6d692006-10-15 08:58:40 +00001625 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1626 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001627 CC_BUILD and EXEEXT_BUILD.
1628
Werner Lembergb9e6d692006-10-15 08:58:40 +00001629 * builds/exports.mk (APINAMES_EXE): Change the extension for
1630 apinames from the suffix for target (E) to that for building host
1631 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001632
Werner Lemberg82a07e92006-10-12 06:20:44 +000016332006-10-12 Werner Lemberg <wl@gnu.org>
1634
1635 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1636 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1637 which reference those files.
1638
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000016392006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1640
Werner Lembergb9e6d692006-10-15 08:58:40 +00001641 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1642 embedded in freetype2.pc and freetype-config. Use it to record
1643 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001644
1645 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1646
1647 * builds/unix/freetype-config.in: Ditto.
1648
Werner Lemberg28e17d92006-10-11 17:27:47 +000016492006-10-11 Werner Lemberg <wl@gnu.org>
1650
1651 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1652 development.
1653
Jens Claudius336d2292006-10-03 08:53:37 +000016542006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1655
1656 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1657 argument to ft_setjmp.
1658
1659 * include/freetype/internal/ftvalid.h: Add comment that
1660 ft_validator_run must not be used.
1661
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016622006-10-01 Werner Lemberg <wl@gnu.org>
1663
1664 * src/base/ftbase.c: Undo change from 2006-09-30.
1665
1666 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1667
16682006-09-30 David Turner <david@freetype.org>
1669
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001670 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1671 s/unpatented_hinting/ignore_unpatented_hinter/.
1672 Update all callers.
1673
1674 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1675 auto-hinting shall be used or not.
1676
1677 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001678
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016792006-09-30 Werner Lemberg <wl@gnu.org>
1680
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001681 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1682 in use).
1683
1684 * src/base/ftbase.c: Include `ftlcdfil.c'.
1685
Werner Lemberg9b15ea32006-09-29 18:22:11 +000016862006-09-29 Werner Lemberg <wl@gnu.org>
1687
1688 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1689 overlapping segments. Bug reported by Stefan Koch.
1690
David Turnerad830712006-09-27 16:20:59 +000016912006-09-28 David Turner <david@freetype.org>
1692
Werner Lemberg2c002e12006-09-29 21:31:53 +00001693 Fix a bug in the automatic unpatented hinting support which prevents
1694 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001695
Werner Lemberg2c002e12006-09-29 21:31:53 +00001696 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1697 s/force_autohint/unpatented_hinting/. Update all callers.
1698
1699 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1700
1701 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001702
David Turner8a317cf2006-09-27 07:52:48 +000017032006-09-27 David Turner <david@freetype.org>
1704
Werner Lemberg2c002e12006-09-29 21:31:53 +00001705 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001706
David Turner8a317cf2006-09-27 07:52:48 +00001707
David Turnere140f142006-10-23 08:56:57 +00001708 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001709 In a default build, the function `FT_Library_SetLcdFilter' returns
1710 `FT_Err_Unimplemented_Feature'; you need to #define
1711 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1712 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001713
Werner Lemberg2c002e12006-09-29 21:31:53 +00001714 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001715
Werner Lemberg2c002e12006-09-29 21:31:53 +00001716 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1717 typedef.
1718 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1719 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001720
Werner Lemberg2c002e12006-09-29 21:31:53 +00001721 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1722 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001723
Werner Lemberg2c002e12006-09-29 21:31:53 +00001724 Handle subpixel rendering.
1725 Simplify function.
1726 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1727 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1728
1729 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1730 pointing to <freetype/ftlcdfil.h>.
1731
1732 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1733 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1734
1735 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001736
Werner Lemberge20df4a2006-09-27 06:29:21 +000017372006-09-26 David Bustin
1738
1739 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1740 correctly. Reported as Savannah bug #17843.
1741
David Turner6f8c6222006-09-26 15:42:44 +000017422006-09-26 David Turner <david@freetype.org>
1743
Werner Lemberg110246c2006-09-26 21:55:44 +00001744 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1745 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1746 horizontal and vertical hinting for the purpose of debugging the
1747 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001748
Werner Lemberg110246c2006-09-26 21:55:44 +00001749 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1750 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001751
Werner Lemberg110246c2006-09-26 21:55:44 +00001752 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1753
1754 * include/freetype/config/ftoption.h, devel/ftoption.h
1755 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1756 we want to compile LCD-optimized rendering code (à la ClearType) or
1757 not. The macro *must* be disabled in default builds of the library
1758 for patent reasons.
1759
1760 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1761 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1762 isn't defined at compile time. This only changes the content of the
1763 rendered glyph to match the one of normal gray-level rendering,
1764 hence clients should not need to be modified.
1765
1766 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001767
Werner Lemberg745ff2c2006-09-19 05:48:02 +000017682006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1769
1770 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1771 LWFN fails and both are available.
1772
David Turnerf3050052006-09-11 12:00:32 +000017732006-09-11 David Turner <david@freetype.org>
1774
Werner Lembergf9644552006-09-12 13:48:10 +00001775 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1776 report their English names through an Apple Roman
1777 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001778
Werner Lembergf9644552006-09-12 13:48:10 +00001779 If the font uses another name entry with language_id == English, it
1780 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001781
Werner Lembergf9644552006-09-12 13:48:10 +00001782 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1783 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001784
Werner Lemberg36d2eab2006-09-05 19:24:34 +000017852006-09-05 Werner Lemberg <wl@gnu.org>
1786
1787 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001788 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001789 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1790 `HAN NOM B.ttf').
1791
1792 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1793
David Turner772e55d2006-09-05 09:45:15 +000017942006-09-05 David Turner <david@freetype.org>
1795
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001796 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001797
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001798 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1799 (TRaster): Remove `count_ex' and `count_ey'.
1800 (gray_find_cell): Remove 2nd and 3rd argument.
1801 (gray_alloc_cell): Merged with `gray_find_cell'.
1802 (gray_record_cell): Simplify.
1803 (gray_set_cell): Rewrite.
1804 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1805 (gray_render_span): Don't use FT_MEM_SET for small values.
1806 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1807 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1808 bitmap scanline.
1809 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001810
David Turneraa557a92006-09-04 16:42:44 +000018112006-09-04 David Turner <david@freetype.org>
1812
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001813 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1814 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001815
Werner Lemberg2d8629b2006-09-03 06:18:45 +000018162006-09-03 Werner Lemberg <wl@gnu.org>
1817
1818 * devel/ftoption.h: Synchronize with
1819 include/freetype/config/ftoption.h.
1820
1821 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1822 variable declaration.
1823 (gray_convert_glyph): Fix compiler warnings.
1824
David Turner6d79f212006-09-01 14:09:35 +000018252006-09-01 David Turner <david@freetype.org>
1826
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001827 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1828 to recognize a few fonts that require the automatic unpatented
1829 loader.
David Turnerbd502952006-09-01 19:05:24 +00001830
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001831 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1832 rasterizer. The speed improvement is between 15% and 25%, depending
1833 on the font data.
1834
1835 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1836 (TCell): Redefine.
1837 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1838 (gray_init_cells): Updated.
1839 (gray_find_cell, gray_alloc_cell): New functions.
1840 (gray_record_cell): Rewritten to use `gray_find_cell' and
1841 `gray_alloc_cell'.
1842 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1843 QSORT_THRESHOLD):
1844 Removed.
1845 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1846 gray_dump_cells): Removed.
1847 (gray_sweep): Rewritten.
1848 (gray_convert_glyph): Rewrite code which used one of the sorting
1849 functions.
1850 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001851
Werner Lembergd898aed2006-08-29 09:50:34 +000018522006-08-29 Dr. Werner Fink <werner@suse.de>
1853
1854 * configure: Make it possible to handle configure options which
1855 have strings containing spaces.
1856
18572006-08-27 David Turner <david@freetype.org>
1858
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001859 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1860 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1861 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1862
1863 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1864 src/truetype/truetype.c, src/truetype/ttdriver.c,
1865 src/truetype/ttgload.c, src/truetype/ttgload.h,
1866 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1867 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1868 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1869
1870 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1871 member `force_autohint'.
1872
1873 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1874
1875 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1876 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001877
Jens Claudiusa787f452006-08-27 11:26:18 +000018782006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1879
1880 Fix miscellaneous compiler warnings.
1881
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001882 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1883 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001884
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001885 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1886 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1887 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001888
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001889 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1890 volatileness of argument to ft_longjmp. Spotted by Werner
1891 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001892
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001893 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1894 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001895
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001896 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1897 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001898
Werner Lembergc4c35b72006-08-27 08:03:46 +000018992006-08-27 Werner Lemberg <wl@gnu.org>
1900
1901 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1902 Reported by Jens.
1903
Jens Claudius088e44e2006-08-22 14:24:30 +000019042006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001905
Jens Claudius088e44e2006-08-22 14:24:30 +00001906 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001907 about addresses of volatile objects passed as function arguments as
1908 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001909
Werner Lembergc4c35b72006-08-27 08:03:46 +00001910 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1911 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001912
1913 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1914 argument `table' a pointer to a volatile object.
1915
1916 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1917 argument `table' a pointer to a volatile object.
1918
Jens Claudius2652bd52006-08-18 17:20:37 +000019192006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1920
1921 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1922 variable `_sfnt' as volatile since it must keep its value across
1923 a call to ft_setjmp.
1924 (gxv_validate): Same for local variables `memory' and `valid'.
1925 (classic_kern_validate): Same for local variables `memory',
1926 `ckern', and `valid'.
1927
1928 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1929 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1930 `jstf', and 'valid'.
1931
1932 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1933 local variable `cmap'.
1934
David Turner9fbfc6a2006-08-16 09:11:31 +000019352006-08-16 David Turner <david@freetype.org>
1936
Werner Lemberg12342992006-08-19 11:18:09 +00001937 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1938 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001939
Werner Lemberg12342992006-08-19 11:18:09 +00001940 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1941 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001942
David Turner33f5f242006-08-16 16:50:55 +00001943
Werner Lemberg12342992006-08-19 11:18:09 +00001944 Improvements to native TrueType hinting. This is a first try,
1945 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1946
1947 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1948 `extra_points2'.
1949
1950 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1951 `orus'.
1952
1953 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1954 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1955 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1956 handle `extra_points2'.
1957
1958 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1959 Remove compiler warning.
1960 (cur_to_arg): Remove macro.
1961 (TT_Hint_Glyph): Updated.
1962 (TT_Process_Simple_Glyph): Handle `orus'.
1963
1964 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1965 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1966 (LOC_Ins_IUP): Renamed to...
1967 (IUP_WorkerRec): This.
1968 Add `orus' member.
1969 (Shift): Renamed to...
1970 (_iup_worker_shift): This.
1971 Updated.
1972 (Interp): Renamed to...
1973 (_iup_worker_interpolate): This.
1974 Updated to handle `orus'.
1975 (Ins_IUP): Updated.
1976
1977 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1978 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001979
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000019802006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1981
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001982 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001983 build ftvalid in ft2demos. This has been inadvertedly changed
1984 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001985
19862006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1987
Werner Lemberg12342992006-08-19 11:18:09 +00001988 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1989 Jens:
1990 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001991
Werner Lemberg12342992006-08-19 11:18:09 +00001992 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1993 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001994
1995 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1996
Jens Claudius9950adc2006-08-13 12:14:36 +000019972006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1998
Werner Lemberg12342992006-08-19 11:18:09 +00001999 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2000 T1_TOKEN_TYPE_KEY.
2001 (T1_FieldRec): Add `dict'.
2002 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2003 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2004 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002005
Werner Lemberg12342992006-08-19 11:18:09 +00002006 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2007 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002008
2009 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2010
2011 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002012 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2013 not T1_TOKEN_TYPE_ANY.
2014 (ps_parser_load_field): Make sure a token that should be a string or
2015 name is really a string or name.
2016 Avoid memory leak if a keyword has been already encountered and its
2017 value is overwritten.
2018 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2019 T1_FIELD_XXX.
2020 (parse_dict): Ignore keywords that occur in the wrong dictionary
2021 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002022
Werner Lemberg12342992006-08-19 11:18:09 +00002023 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2024 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002025
Werner Lemberg12342992006-08-19 11:18:09 +00002026 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2027 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002028
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000020292006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2030
2031 Move creation of field `buildchar' of T1_DecoderRec out of
2032 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2033 of it.
2034
2035 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2036 and `T1_Compute_Max_Advance'.
2037
2038 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2039 Remove field `face', add `len_buildchar'.
2040
2041 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2042 field `buildchar'.
2043
2044 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2045 finisher for T1_Decoder.
2046 (cid_slot_load_glyph): Do not ignore failure when initializing the
2047 T1_Decoder.
2048
2049 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2050 Updated.
2051 (t1_decoder_init): Remove initialization of fields `buildchar' and
2052 `len_buildchar'.
2053 (t1_decoder_done): Remove deallocation of field `buildchar'.
2054
2055 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2056 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2057 T1_Decoder.
2058 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2059 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2060 case of error.
2061
2062 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2063 `buildchar' of T1_FaceRec.
2064
2065 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2066 `buildchar' of T1_FaceRec.
2067
Werner Lemberg1a380e02006-07-14 18:28:08 +000020682006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2069
2070 * freetype2/include/freetype/internal/psaux.h: New macros
2071 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2072 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2073 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2074 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2075 (T1_DecoderRec): New fields `buildchar' and `face'.
2076 (IS_PS_TOKEN): New macro.
2077
2078 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2079 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2080
2081 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2082 `default_design_vector' and `num_default_design_vector'.
2083
2084 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2085 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2086 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2087
2088 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2089 `token' argument to be NULL if we want only to count the number of
2090 tokens.
2091 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2092 want to skip the array.
2093 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2094 want to skip the array.
2095
2096 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2097 support for (partially commented out) othersubrs 19-25, 27, and 28.
2098 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2099 (t1_decoder_done): Release new field `buildchar'.
2100
2101 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2102 functions.
2103 (t1_keywords): Register them.
2104 (t1_allocate_blend): Updated.
2105 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2106 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2107 (parse_dict): Remove `keyword_flags' argument.
2108 Use new macro IS_PS_TOKEN.
2109 Changed function so that later PostScript definitions override
2110 earlier ones.
2111 (t1_init_loader): Initialize new field `keywords_encountered'.
2112 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2113 `len_buildchar'.
2114 Remove `keywords_flags'.
2115
2116 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2117 `keywords_encountered'.
2118 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2119
2120 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2121 New entries for parsing /NDV, /CDV, and /DesignVector.
2122
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000021232006-07-07 Werner Lemberg <wl@gnu.org>
2124
2125 Add many checks to protect against malformed PCF files.
2126
2127 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2128 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2129
2130 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2131 data and check that tables don't overlap (using a simple
2132 bubblesort).
2133 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2134 New macros which give the size of data structures in the data
2135 stream.
2136 (pcf_get_properties): Use rough estimates to get array size limits.
2137 Assign `face->nprops' and `face->properties' earlier so that a call
2138 to PCF_Face_Done can do the clean-up in case of error.
2139 Protect against invalid string offsets.
2140 (pcf_get_metrics): Clean up code.
2141 Adjust tracing message levels.
2142 Use rough estimate to get array size limit.
2143 (pcf_get_bitmaps): Clean up code.
2144 Adjust tracing message levels.
2145 Use rough estimates to get offset limits.
2146 (pcf_get_encodings): Adjust tracing message level.
2147 (pcf_get_accel): Clean up code.
2148
Werner Lemberg8eb05252006-06-27 06:20:01 +000021492006-06-26 Werner Lemberg <wl@gnu.org>
2150
2151 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2152 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2153
Werner Lemberg24703f82006-06-26 19:12:51 +000021542006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2155
2156 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2157 (t1_decoder_parse_charstrings): Operator with
2158 opcode 15 pops its two arguments.
2159 Handle the case where the pops of an othersubr may be part of a
2160 subroutine.
2161 Handle unknown othersubrs gracefully: count their operands and let
2162 the following pop operators push the operands as the results onto
2163 the Type1 stack.
2164 Improve handling of setcurrentpoint opcode.
2165
Werner Lembergc011f4c2006-06-26 09:40:00 +000021662006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2167
2168 The Type 1 parser now skips over top-level procedures as required
2169 for a `Simplified Parser'. This makes the parser more robust as it
2170 doesn't poke around in PostScript code. Additionally, it makes the
2171 FontDirectory hackery in src/type1/t1load.c unnecessary.
2172
2173 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2174 (skip_literal_string): Add FT_Error as return value.
2175 Handle escapes better.
2176 (skip_string): Add FT_Error as return value.
2177 Don't set `parser->error' but return error code directly.
2178 (skip_procedure): New function.
2179 (ps_parser_skip_PS_token): Handle procedures.
2180 Update code.
2181 (ps_parser_to_token): Update code.
2182 (ps_parser_load_field_table): Handle bbox entries also.
2183
2184 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2185 Add commented-out code for synthetic fonts.
2186
Werner Lemberga2da05c2006-06-25 06:27:27 +000021872006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2188
2189 Fix two hinting bugs as reported in
2190 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2191
2192 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2193 `first_point' member.
2194
2195 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2196 `first_point'.
2197 (TT_Process_Composite_Glyph): Always untouch points.
2198
2199 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2200 `first_point' and `last_point' in case of composite glyphs.
2201 (Ins_IUP): Fix computation of `end_point'.
2202
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000022032006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2204
Werner Lembergef3d2c22006-06-25 06:07:14 +00002205 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2206 Mac. The original patch was written by David Sachitano and Lawrence
2207 Coopet, and modified by Sean McBride for MPW compatibility. Only
2208 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002209
Werner Lembergef3d2c22006-06-25 06:07:14 +00002210 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2211 Mac OS X platforms.
2212 (OS_INLINE): Undefine before definition.
2213 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2214 FontAssociation table in FOND resource.
2215 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2216 and fontSize at each entry of FontAssociation table in FOND
2217 resource.
2218 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2219 ffStylOff of FamilyRecord header of FOND resource, the header,
2220 fontSize, fontID at each entry of FontAssociation table, and
2221 StyleMapping table.
2222 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002223
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000022242006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2225
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002226 Public API of TrueTypeGX, OpenType, and classic kern table validator
2227 should return `FT_Err_Unimplemented_Feature' if validation service
2228 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002229 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002230 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2231
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002232 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2233 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2234 unavailable.
2235 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2236 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002237
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002238 * src/base/ftotval.c (FT_OpenType_Validate): Return
2239 FT_Err_Unimplemented_Feature if OpenType validation service is
2240 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002241
Werner Lembergb10e45a2006-06-08 07:32:56 +000022422006-06-08 Werner Lemberg <wl@gnu.org>
2243
2244 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2245 errors.
2246
David Turner5f1f7502006-06-07 05:11:50 +000022472006-06-07 David Turner <david@freetype.org>
2248
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002249 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2250 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2251 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002252
David Turner457b4a82006-06-06 08:14:14 +000022532006-06-06 David Turner <david@freetype.org>
2254
Werner Lemberg4836f952006-06-06 12:54:08 +00002255 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002256
Werner Lemberg4836f952006-06-06 12:54:08 +00002257 We change `ps_unicodes_init' so that it also takes a
2258 `free_glyph_name' callback to release the glyph names returned by
2259 `get_glyph_name'
2260
2261 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2262 Renamed to ...
2263 (PS_GetGlyphNameFunc): This.
2264 (PS_FreeGlyphNameFunc): New typedef.
2265 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2266
2267 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2268 argument.
2269 (cff_sid_free_glyph_name): New function.
2270 (cff_cmap_unicode_init): Updated.
2271
2272 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2273
2274 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2275 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002276
2277
David Turner09717352006-06-04 14:33:08 +000022782006-06-04 David Turner <david@freetype.org>
2279
Werner Lembergd724f202006-06-04 15:17:41 +00002280 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2281 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002282 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002283
Werner Lembergd724f202006-06-04 15:17:41 +00002284 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2285 of `face->num_glyphs' which missed the last glyph, due to
2286 the offset-by-1 computation, since the PFR format doesn't
2287 guarantee that glyph index 0 corresponds to the `missing
2288 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002289
Werner Lemberg33779662006-05-26 06:30:05 +000022902006-05-25 Werner Lemberg <wl@gnu.org>
2291
2292 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2293 `-no-undefined'. Reported by Christian Biesinger.
2294
Werner Lemberg24773d62006-05-20 08:53:13 +000022952006-05-19 Brian Weed <bw@imaginengine.com>
2296
2297 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2298 have debug information, and debug libraries use `C7 compatible'
2299 debug info.
2300
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000023012006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2302
Werner Lemberga6523a62006-05-20 08:47:01 +00002303 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002304 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002305
Werner Lemberga6523a62006-05-20 08:47:01 +00002306 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2307 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002308
2309 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002310 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002311
23122006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2313
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002314 * build/unix/configure.raw: Add a fallback to disable Carbon
2315 dependency, if configured with no options on Mac OS X.
2316
23172006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2318
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002319 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002320 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002321 the second part of Savannah bug #16590.
2322
Werner Lemberg545c4e52006-05-17 22:55:04 +000023232006-05-18 Werner Lemberg <wl@gnu.org>
2324
2325 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2326 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2327
David Turnerdc3ff312006-05-17 12:59:35 +000023282006-05-17 David Turner <david@freetype.org>
2329
Werner Lemberg545c4e52006-05-17 22:55:04 +00002330 This is a major patch used to drastically improve the performance of
2331 loading glyphs. This both speeds up loading the glyph vectors
2332 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002333
Werner Lemberg545c4e52006-05-17 22:55:04 +00002334 We now use inline assembler code with GCC to implement `FT_MulFix',
2335 which is probably the most important function related to the
2336 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002337
Werner Lemberg545c4e52006-05-17 22:55:04 +00002338 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002339
2340
Werner Lemberg545c4e52006-05-17 22:55:04 +00002341 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2342 `cursor' and `limit'.
2343
2344 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2345 New functions.
2346 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2347 [TEST]: Remove.
2348
2349 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2350 code.
2351
2352 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2353 `FT_ZERO'
2354 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2355 (af_glyph_hints_reload: Rewrite recognition of weak points.
2356
2357 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2358 constant values out of the loops.
2359
2360 * src/autofit/aftypes.h: Updated.
2361
2362 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2363
2364 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2365 product to get orientation.
2366
2367 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2368 (FT_Stream_OpenGzip): Use it to handle small files directly in
2369 memory.
2370
2371 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2372 Improve performance.
2373
2374 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2375 `limit'.
2376
2377 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2378 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2379 exceedingly large values of number of contours. Speed up by
2380 reducing the number of loops.
2381
2382 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2383
2384
2385 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2386 used to detect rogue clients from 4 to 16. This is to prevent some
2387 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2388 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002389
Werner Lembergde2d90a2006-05-17 08:54:30 +000023902007-05-17 Werner Lemberg <wl@gnu.org>
2391
2392 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002393 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002394
23952006-05-16 Werner Lemberg <wl@gnu.org>
2396
2397 * docs/PROBLEMS: Updated icl issues.
2398
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002399----------------------------------------------------------------------------
2400
Werner Lemberg42b63b22007-01-21 21:01:33 +00002401Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002402David Turner, Robert Wilhelm, and Werner Lemberg.
2403
2404This file is part of the FreeType project, and may only be used, modified,
2405and distributed under the terms of the FreeType project license,
2406LICENSE.TXT. By continuing to use, modify, or distribute this file you
2407indicate that you have read the license and understand and accept it
2408fully.
2409
2410
2411Local Variables:
2412version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002413coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002414End: