blob: fc3982e6433366f300d236d45c5bc2ac10f86936 [file] [log] [blame]
David Turner0ba89912007-07-01 09:34:04 +000012007-07-01 David Turner <david@freetype.org>
2
3 * src/truetype/ttgload.c: fix a small bug that created distortions
4 in the bytecode interpreter results
5
David Turner74cc0e92007-06-30 22:54:12 +000062007-06-30 David Turner <david@freetype.org>
7
8 * src/truetype/ttinterp.c: add missing variable initialization,
9 gets rid of Valgrind fixes.
10
11 * src/autofit/aflatin.c: get rid of an infinite loop in the case
12 of degenerate fonts.
13
Werner Lemberg7723dc32007-06-26 04:44:35 +0000142007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
15
16 Add autofit module for Indic scripts. This currently just reuses
17 the CJK-specific functions.
18
19 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
20 macro.
21 * devel/ftoption.h: Synchronize with
22 include/freetype/config/ftoption.h.
23
24 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
25
26 * src/autofit/afglobal.c, src/autofit/aftypes.h,
27 src/autofit/autofit.c: Updated.
28
29 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
30 (AUTOF_DRV_SRC): Updated.
31
David Turner8f626b02007-06-22 22:22:38 +0000322007-06-23 David Turner <david@freetype.org>
33
Werner Lemberg7854c4a2007-06-23 07:16:20 +000034 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
35 2007-06-16 that prevented the TrueType module from loading most
36 glyphs.
David Turner8f626b02007-06-22 22:22:38 +000037
Werner Lemberg5b4d4352007-06-20 07:07:55 +0000382007-06-20 Werner Lemberg <wl@gnu.org>
39
40 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
41 change.
42
Werner Lemberg9fe58152007-06-19 07:57:30 +0000432007-06-19 Werner Lemberg <wl@gnu.org>
44
45 * src/type1/t1load.c (parse_encoding): Handle one more error.
46
Werner Lemberg5a829392007-06-19 04:53:30 +0000472007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
48
49 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
50 FNT_Err_Invalid_File_Format if file format was recognized but
51 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
52 Add verbose debug logs to make it easier to debug failing load
53 attempts.
54 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
55 so return an error if requested face index is > 0.
56 Do not do further attempt to load fonts if a previous attempt has
57 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
58 file format has been recognized but no fonts found in the file.
59
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000602007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
61
62 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
63 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
64 the compiler warnings against unused arguments.
65 (FT_ATSFontGetFileReference): Ditto.
66 (FT_GetFile_From_Mac_ATS_Name): Ditto.
67 (FT_New_Face_From_FSSpec): Ditto.
68 (lookup_lwfn_by_fond): Fix wrong comment.
69 Replace `const StringPtr' by more appropriate type
70 `ConstStr255Param'.
71 FSRefMakePathPath always returns UTF8 POSIX pathname in
72 Mach-O, thus HFS pathname support is dropped.
73 (count_faces): Remove HLock and HUnlock which is not
74 required on Mac OS X anymore.
75 (FT_New_Face_From_SFNT): Ditto.
76 (FT_New_Face_From_FOND): Ditto.
77 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
78 except of HFS pathname support and HLock/HUnlock.
79 They are required on classic CFM environment.
80
812007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +000082
Werner Lembergf9fa1c82007-06-18 17:00:05 +000083 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
84 assertion.
85 (ps_parser_to_bytes): Fix error message.
86
Werner Lembergbb2510d2007-06-18 17:07:49 +000087 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000088 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
89 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +000090 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +000091 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +000092
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +0000932007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +000094
Werner Lembergf48aec72007-06-18 07:07:55 +000095 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
96 logic.
97 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
98 correctly.
99 (ps_parser_load_field_table): Use `fields->array_max' instead of
100 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
101
Werner Lemberg95104a42007-06-18 07:33:10 +0000102 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
103 2007-06-06.
104
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001052007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000106
107 * src/tools/ftrandom.c (font_size): New global variable.
108 (TestFace): Use it.
109 (main): Handle new option `--size' to set `font_size'.
110 (Usage): Updated.
111
Werner Lembergbe183eb2007-06-17 11:27:17 +0000112 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
113 invalid font.
114 (FNT_Load_Glyph): Protect against invalid bitmap width.
115
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001162007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000117
Werner Lemberge12ed562007-06-17 05:31:23 +0000118 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
119 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000120
Werner Lemberge12ed562007-06-17 05:31:23 +0000121 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
122 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000123
Werner Lemberge12ed562007-06-17 05:31:23 +0000124 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
125 and `zp2'.
126 (Ins_IP): Check argument ranges to reject bogus operations properly.
127 (IUP_WorkerRec): Add `max_points' member.
128 (_iup_worker_interpolate): Check argument ranges.
129 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000130
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001312007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000132
133 * src/winfonts/winfnt.h: Add necessary structures for PE resource
134 parsing.
135 (WinPE32_HeaderRec): New structure.
136 (WinPE32_SectionRec): New structure.
137 (WinPE_RsrcDirRec): New structure.
138 (WinPE_RsrcDirEntryRec): New structure.
139 (WinPE_RsrcDataEntryRec): New structure.
140 (FNT_FontRec): Remove unused `size_shift' field.
141
142 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
143 loading bitmap .fon files in PE format.
144
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001452007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000146
147 * builds/win32/ftdebug.c: Unify debug level handling with other
148 platforms.
149
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001502007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000151
152 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
153 console as well as to the debugger.
154
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001552007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000156
157 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
158 cover all ranges which could possibly be handled by the aflatin
159 module (since the default fallback for unknown ranges is now the
160 afcjk module). It might be necessary to fine-tune this further by
161 splitting off modules for Greek, Cyrillic, or other blocks.
162
David Turnerb7920172007-06-11 05:37:35 +00001632007-06-11 David Turner <david@freetype.org>
164
Werner Lemberg49e18b82007-06-11 21:15:09 +0000165 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
166 incorrect segment linking computation. This was the root cause of
167 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000168
169
Werner Lemberg49e18b82007-06-11 21:15:09 +0000170 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
171 to improve the Latin auto-hinter. Note that the new code is
172 disabled by default since it is not stabilized yet.
173
174 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
175 (disabled currently).
176
177 * src/autofit/afhints.c: Remove dead code.
178 (af_axis_hints_new_edge): Add argument to handle segment directions.
179 (af_edge_flags_to_string): New function.
180 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
181 option flags.
182 (af_glyph_hints_reload): Add argument to handle inflections.
183 Simplify.
184 (af_direction_compute): Fine tuning.
185 (af_glyph_hints_align_edge_points): Fix logic.
186 (af_glyph_hints_align_strong_points): Do linear search for small
187 edge counts.
188 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
189 (af_iup_shift): Handle zero `delta'.
190
191 * src/autofit/afhints.h: Updated.
192 (AF_SORT_SEGMENTS): New macro (disabled).
193 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
194
195 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
196 argument to pass option flags for handling scripts.
197 * src/autofit/afglobal.h: Updated.
198
199 * src/autofit/afcjk.c: Updated.
200 * src/autofit/aflatin.c: Updated.
201 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
202
203 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
204 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
205 Don't set `edge->dir'
206 (af_latin_hint_edges): Add more logging.
207
208 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000209
Werner Lembergf6c120f2007-06-11 04:55:58 +00002102007-06-11 Werner Lemberg <wl@gnu.org>
211
Werner Lembergcf7b7642007-06-11 04:58:01 +0000212 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000213
David Turner84c6f882007-06-10 20:51:04 +00002142007-06-10 David Turner <david@freetype.org>
215
Werner Lembergf6c120f2007-06-11 04:55:58 +0000216 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
217 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000218
Werner Lembergf6c120f2007-06-11 04:55:58 +0000219 * include/freetype/config/ftoption.h: Clarify documentation
220 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000221
Werner Lembergf6c120f2007-06-11 04:55:58 +0000222
223 Add new `FT_Face_CheckTrueTypePatents' API.
224
225 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
226 declaration.
227
228 * include/freetype/internal/services/svttglyf.h,
229 src/base/ftpatent.c: New files.
230
231 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
232 New macro.
233
234 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
235 `ttpload.h'.
236 (tt_service_truetype_glyf): New service structure.
237 (tt_services): Register it.
238
239 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
240 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000241
Werner Lemberg33db39e2007-06-08 06:30:29 +00002422007-06-08 Werner Lemberg <wl@gnu.org>
243
David Turner84c6f882007-06-10 20:51:04 +0000244 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000245 Fonts without a cmap must be handled correctly by FreeType (anything
246 else would be a bug).
247
248
249 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
250 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
251
Werner Lemberg88ab6382007-06-07 05:01:56 +00002522007-06-07 Werner Lemberg <wl@gnu.org>
253
254 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
255 tt_sbit_decoder_load_image): Protect against integer overflows.
256
257
258 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
259 for `x_control' and `y_control'.
260
Werner Lemberg2a2dca62007-06-06 04:39:37 +00002612007-06-06 Werner Lemberg <wl@gnu.org>
262
263 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
264
Werner Lemberga8d65492007-06-06 04:47:49 +0000265
266 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
267 FreeType error.
268
Werner Lemberg470210b2007-06-06 10:05:49 +0000269
270 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
271 `font_count'.
272
273
274 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
275
276
277 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
278 `FT_Error'.
279 Check `fd_index'.
280 (cff_slot_load): Updated.
281 * src/cff/cffgload.h: Updated.
282
Werner Lemberg6c054752007-06-05 05:27:54 +00002832007-06-05 Werner Lemberg <wl@gnu.org>
284
285 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
286 (pfr_glyph_load_simple): Convert assertion into normal FreeType
287 error.
288 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000289 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
290 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000291
292 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
293
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000294
Werner Lemberg470210b2007-06-06 10:05:49 +0000295 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000296
Werner Lemberge5c14d92007-06-05 20:50:37 +0000297
298 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
299 in case of parsing error.
300 (ps_parser_load_field): Updated.
301
302 * src/type1/t1load.c (parse_font_matrix): Updated.
303
Werner Lembergad18b362007-06-04 07:04:05 +00003042007-06-04 Werner Lemberg <wl@gnu.org>
305
306 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
307
308 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
309
Werner Lemberg3d507fe2007-06-03 16:54:55 +00003102007-06-03 Werner Lemberg <wl@gnu.org>
311
Werner Lemberg99a320b2007-06-03 19:21:26 +0000312 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
313 George Williams (with some modifications).
314
3152007-06-03 Werner Lemberg <wl@gnu.org>
316
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000317 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
318 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
319 face == NULL. Suggested by Graham Asher.
320
Werner Lembergce280a22007-06-03 05:58:30 +00003212007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
322
323 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
324
Werner Lemberg5b591e42007-06-01 22:16:43 +00003252007-06-02 Werner Lemberg <wl@gnu.org>
326
327 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
328 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
329
330 * src/bdf/bdflib.c (bdf_load_font): Use them.
331
332 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
333
Werner Lembergb9933f42007-06-01 21:27:12 +00003342007-06-01 Werner Lemberg <wl@gnu.org>
335
336 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
337 (FTC_CMapCache_Lookup): Remove unused code.
338
Werner Lembergc793d902007-06-01 20:51:11 +00003392007-06-01 Sean McBride <sean@rogue-research.com>
340
341 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
342 unused.
343
Werner Lembergbebc7b12007-06-01 06:32:30 +00003442007-06-01 Werner Lemberg <wl@gnu.org>
345
346 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
347 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000348 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000349
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000350 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
351 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
352
Werner Lembergba03af62007-05-30 13:57:02 +00003532007-05-30 Werner Lemberg <wl@gnu.org>
354
355 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
356 against too small binary data strings.
357
358 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
359
David Turnerf0cd69c2007-05-28 15:42:09 +00003602007-05-28 David Turner <david@freetype.org>
361
Werner Lemberg99e0c182007-05-29 07:00:23 +0000362 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
363 transformation. This significantly reduces the loading time of CFF
364 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000365
Werner Lemberg99e0c182007-05-29 07:00:23 +0000366 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000367
Werner Lemberg99e0c182007-05-29 07:00:23 +0000368 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
369 hinting script to CJK, since it works well with more scripts than
370 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
371 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000372
Werner Lemberg1c8980e2007-05-25 07:11:12 +00003732007-05-25 Werner Lemberg <wl@gnu.org>
374
375 * docs/CHANGES: Updated.
376
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00003772007-05-24 Werner Lemberg <wl@gnu.org>
378
379 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
380 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
381
3822007-05-24 Graham Asher <graham.asher@btinternet.com>
383
384 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
385 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
386
David Turner0d0365e2007-05-22 09:53:44 +00003872007-05-22 David Turner <david@freetype.org>
388
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000389 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
390 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000391
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000392
393 Avoid heap blowup with very large .Z font files. This fixes
394 Savannah bug #19910.
395
396 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
397 `in_limit', `pad', `pad_bits', and `in_buff' members.
398 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
399 `buf_total' members.
400
401 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
402 only one argument.
403 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000404
4052007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000406
407 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
408 (ps_dimension_set_mask_bits): Remove `const'.
409
David Turner0d0365e2007-05-22 09:53:44 +00004102007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000411
412 * src/sfnt/ttmtx.c (tt_face_get_metrics)
413 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
414
Werner Lembergb826fa72007-05-19 07:18:48 +00004152007-05-19 Derek Clegg <dclegg@apple.com>
416
417 Savannah patch #5929.
418
419 * include/freetype/tttables.h, src/base/ftobjcs.c
420 (FT_Get_CMap_Format): New function.
421
422 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
423 `format' member.
424 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
425 cmap_info->format.
426
Werner Lemberg6f99c882007-05-19 07:01:49 +00004272007-05-19 Werner Lemberg <wl@gnu.org>
428
429 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
430 before handling subglyphs so that it can be reinitialized each time.
431 This fixes Savannah bug #19859.
432
Werner Lemberg95bc9d32007-05-16 15:19:42 +00004332007-05-16 Werner Lemberg <wl@gnu.org>
434
435 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
436 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
437 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
438 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
439 tt_face_get_metrics): Fix type-punning issues.
440
David Turner0a24bd22007-05-15 10:54:10 +00004412007-05-15 David Turner <david@freetype.org>
442
443 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000444 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
445 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000446 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000447 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000448
Werner Lemberg607dec72007-05-15 06:49:37 +00004492007-05-15 Graham Asher <graham.asher@btinternet.com>
450
451 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
452 variable.
453 * src/autofit/afloader.c (af_loader_load_g): Ditto.
454
455 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
456 (open_face_from_buffer): Initialize `stream'.
457 (FT_Request_Metrics): Remove unused variable.
458 Remove redundant `break' statements.
459 (FT_Get_Track_Kerning): Remove unused variable.
460
461 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
462 afm_parse_kern_data): Remove redundant
463 `break' statements.
464 (afm_parser_parse): Ditto.
465 Don't use uninitialized variables.
466
467 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
468 Use `|' operator instead of `^' to set it.
469 Update all users.
470
471 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
472 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
473
474 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
475 comparison.
476 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
477 (TT_Load_Glyph): Remove unused variable.
478
Werner Lemberg8d463a52007-05-13 16:01:55 +00004792007-05-13 Derek Clegg <dclegg@apple.com>
480
481 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
482 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
483
David Turner711cf842007-05-11 14:36:24 +00004842007-05-11 David Turner <david@freetype.org>
485
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000486 * src/cache/ftbasic.c, include/freetype/ftcache.h
487 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
488 functions that allow us to look up glyphs using an FTC_Scaler object
489 to specify the size, making it possible to use fractional pixel
490 sizes.
491
492 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
493 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000494
Werner Lemberg94be20e2007-05-09 20:02:55 +00004952007-05-09 Graham Asher <graham.asher@btinternet.com>
496
497 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
498 (af_latin_metrics_scale_dim): Fix compiler warnings.
499
Werner Lemberg41271032007-05-06 04:51:48 +00005002007-05-06 Werner Lemberg <wl@gnu.org>
501
502 * builds/win32/visualce/freetype.sln: Removed, as requested by
503 Vincent.
504
Werner Lembergdf49e692007-05-04 06:30:05 +00005052007-05-04 Vincent RICHOMME <richom.v@free.fr>
506
507 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
508 PC targets.
509
510 * docs/CHANGES: Document them.
511
5122007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000513
514 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
515 mmap (which might happen on some RTOS). From Savannah patch #5909.
516
Werner Lemberg106eaf12007-05-03 07:07:47 +00005172007-05-03 Werner Lemberg <wl@gnu.org>
518
519 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
520 * include/freetype/freetype.h (FT_Set_Char_Size): Update
521 documentation.
522
Werner Lemberg1b5267d2007-04-28 21:06:15 +00005232007-04-28 Victor Stinner <victor.stinner@inl.fr>
524
525 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
526 `cmap'.
527
Werner Lembergcc712a22007-04-27 17:16:50 +00005282007-04-27 Werner Lemberg <wl@gnu.org>
529
530 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
531 number of points in contours. Problem reported by Victor Stinner
532 <victor.stinner@haypocalc.com>.
533 (TT_Process_Simple_Glyph): Synchronize variable types.
534
Werner Lemberg45bb18f2007-04-26 06:26:35 +00005352007-04-26 Werner Lemberg <wl@gnu.org>
536
537 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
538 zero in case of error. This fixes Savannah bug #19689.
539
David Turnera8b45e62007-05-11 14:10:30 +00005402007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
541
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000542 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
543 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000544
Werner Lembergfcc1f472007-04-10 11:51:50 +00005452007-04-10 Martin Horak <horakm@centrum.cz>
546
547 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
548 Ignore `hhea' table. This fixes Savannah bug #19261.
549
Werner Lemberg14bf82e2007-04-10 04:09:49 +00005502007-04-09 Werner Lemberg <wl@gnu.org>
551
552 * Version 2.3.4 released.
553 =========================
554
555
556 Tag sources with `VER-2-3-4'.
557
558 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
559 version number to 2.3.4.
560
561 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
562 builds/win32/visualc/freetype.dsp,
563 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
564
565 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
566
567 * builds/unix/configure.raw (version_info): Set to 9:15:3.
568
Werner Lembergf4a52a62007-04-09 08:40:11 +00005692007-04-09 Martin Horak <horakm@centrum.cz>
570
571 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
572 memory stream to avoid a crash with the incremental memory
573 interface (Savannah bug #19260).
574
David Turner1dcb4442007-04-06 08:19:04 +00005752007-04-06 David Turner <david@freetype.org>
576
Werner Lembergc81cf612007-04-06 09:28:23 +0000577 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
578 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000579
Werner Lemberg9f83e052007-04-05 02:28:23 +00005802007-04-04 Werner Lemberg <wl@gnu.org>
581
582 * Version 2.3.3 released.
583 =========================
584
585
586 Tag sources with `VER-2-3-3'.
587
588 * docs/CHANGES: Mention CVE-2007-1351.
589
David Turner7338ec22007-04-03 14:30:34 +00005902007-04-03 David Turner <david@freetype.org>
591
592 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000593 if one of the resolution values is 0, treat it as if it were the
594 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000595
David Turnere6472c12007-04-02 13:13:54 +00005962007-04-02 David Turner <david@freetype.org>
597
Werner Lemberg94f12272007-04-03 07:19:53 +0000598 Add special code to detect `extra-light' fonts and do not snap their
599 stem widths too much to avoid bizarre hinting effects.
600
601 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
602 `extra_light' members.
603
604 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
605 them.
606 (af_latin_metrics_scale_dim): Set `extra_light'.
607 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000608
David Turner3f539692007-03-28 14:53:40 +00006092007-03-28 David Turner <david@freetype.org>
610
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000611 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000612 padding.
613
Werner Lemberga08b2172007-03-28 07:17:17 +00006142007-03-28 Werner Lemberg <wl@gnu.org>
615
616 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
617 gracefully.
618 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000619 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000620 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
621 number of code points in Unicode.
622
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000623 * builds/win32/visualc/index.html,
624 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000625 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000626 s/232/233/.
627
628 * docs/CHANGES: Mention ftdiff.
629
David Turner3b242d32007-03-26 12:03:04 +00006302007-03-26 David Turner <david@freetype.org>
631
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000632 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
633 corresponding code.
634 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000635
Werner Lemberga08b2172007-03-28 07:17:17 +0000636 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000637 computations in order to ignore single-point contours. These are
638 never rasterized and correspond in certain fonts to mark-attach
639 points that are very far from the glyph's real outline, ruining the
640 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000641
Werner Lemberga08b2172007-03-28 07:17:17 +0000642 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000643 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000644 Otherwise code that uses them will most certainly ruin the fixed
645 advance property.
David Turner23553d62007-03-26 13:37:17 +0000646
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000647 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
648 documentation and bump version number to 2.3.3.
649
650 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
651
652 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000653
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00006542007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
655
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000656 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
657 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000658 * builds/vms/ftconfig.h: Ditto.
659 * include/freetype/config/ftconfig.h: Ditto.
660
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00006612007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
662
Werner Lemberg14ffe092007-03-22 06:12:43 +0000663 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
664 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000665 proposed by Sean McBride:
666 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
667
6682007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
669
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000670 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
671 setjmp, proposed by Sean McBride:
672 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
673
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00006742007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
675
Werner Lembergc9f6c662007-03-21 13:30:14 +0000676 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
677 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
678 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000679
David Turner74c34eb2007-03-18 07:19:31 +00006802007-03-18 David Turner <david@freetype.org>
681
Werner Lembergc9f6c662007-03-21 13:30:14 +0000682 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
683 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000684
Werner Lembergc9f6c662007-03-21 13:30:14 +0000685 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000686
David Turner89020d92007-03-17 17:48:57 +00006872007-03-17 David Turner <david@freetype.org>
688
Werner Lembergc9f6c662007-03-21 13:30:14 +0000689 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
690 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000691
Werner Lemberg25d592a2007-03-09 07:59:35 +00006922007-03-09 Werner Lemberg <wl@gnu.org>
693
694 * Version 2.3.2 released.
695 =========================
696
697
698 Tag sources with `VER-2-3-2'.
699
700 * builds/win32/visualc/index.html,
701 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000702 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000703 s/231/232/.
704
David Turner3a51afa2007-03-08 10:50:38 +00007052007-03-08 David Turner <david@freetype.org>
706
Werner Lemberg25d592a2007-03-09 07:59:35 +0000707 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000708
Werner Lemberg25d592a2007-03-09 07:59:35 +0000709 * builds/unix/configure.raw (version_info): Set to 9:13:3.
710
711 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
712
713 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000714
Werner Lemberg1e259de2007-03-08 15:39:21 +0000715 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
716 function to work properly, over-writing user-provided buffers in
717 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000718
David Turner121cad52007-03-08 16:43:50 +0000719
Werner Lemberg3d92f082007-03-06 11:59:24 +00007202007-03-05 Werner Lemberg <wl@gnu.org>
721
722 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
723 macro for `strstr'.
724
725 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
726 `trick_names', as suggested by Ivan Nincic.
727
David Turner085bc6e2007-03-05 17:40:03 +00007282007-03-05 David Turner <david@freetype.org>
729
Werner Lembergd112cf02007-03-06 12:06:56 +0000730 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
731 case FT_Init_FreeType fails for some reason. Problem reported by
732 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000733
Werner Lembergd112cf02007-03-06 12:06:56 +0000734 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
735 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
736 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
737 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000738
Werner Lembergd112cf02007-03-06 12:06:56 +0000739 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
740 signed values, not unsigned ones. Problem reported by Johannes
741 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000742
David Turner601aefe2007-02-21 16:47:49 +00007432007-02-21 David Turner <david@freetype.org>
744
Werner Lembergde5e6862007-02-25 21:06:43 +0000745 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
746 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000747
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00007482007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
749
750 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
751 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
752 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
753
Werner Lemberga0915172007-02-16 08:12:50 +00007542007-02-16 Werner Lemberg <wl@gnu.org>
755
756 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
757 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
758
David Turner2c4500e2007-02-14 15:08:47 +00007592007-02-14 David Turner <david@freetype.org>
760
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000761 It seems that the following changes fix most of the known
762 interpreter problems with my fonts, but more testing is needed,
763 though.
764
765 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
766 (TT_MulFix14): Rewrite.
767 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
768 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000769
Werner Lembergc6a14082007-02-12 22:08:15 +00007702007-02-12 Werner Lemberg <wl@gnu.org>
771
772 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
773 warnings.
774
775 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
776 (bdf_interpret_style): Ditto.
777
David Turnerc0f9c4a2007-02-12 14:55:03 +00007782007-02-12 David Turner <david@freetype.org>
779
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000780 Simplify projection and dual-projection code interface.
781
Werner Lemberg406d25f2007-02-12 22:01:18 +0000782 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
783 FT_Vector' as argument type.
784 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
785 Updated.
786 (CUR_fast_project, CUR_fast_dualproj): New macros.
787 (Project, Dual_Project, Project_x, Project_y): Updated.
788 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
789 macros.
790
791
792 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
793 adjustments for the non-light auto-hinted modes. Gets rid of
794 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000795
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000796 * src/autofit/aflatin.c (af_latin_hints_link_segments,
797 af_latin_hints_compute_edges): Slight optimization of the segment
798 linker and better handling of serif segments to get rid of broken
799 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000800
David Turnerc0f9c4a2007-02-12 14:55:03 +0000801
Werner Lemberg442bfb82007-02-12 21:44:10 +0000802 Introduce new string functions and the corresponding macros to get
803 rid of various uses of strcpy and other `evil' functions, as well as
804 to simplify a few things.
805
806 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
807 ft_mem_strcpyn): New declarations.
808 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
809 macros.
810 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
811 functions.
812
813 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
814 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
815 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
816 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
817 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
818 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
819 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
820 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000821
Werner Lemberg406d25f2007-02-12 22:01:18 +0000822 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
823
Werner Lemberg582067d2007-02-11 15:03:05 +00008242007-02-11 Werner Lemberg <wl@gnu.org>
825
826 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
827 non-spacing glyphs.
828
Werner Lemberg8f474532007-02-07 08:31:01 +00008292007-02-07 Tom Parker <palfrey@tevp.net>
830
831 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
832 pointer.
833
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008342007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
835
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000836 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
837 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000838 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000839 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
840 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
841 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
842 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000843
844 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
845 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000846 * builds/mac/ftmac.c: Ditto.
847
8482007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
849
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000850 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000851 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000852 #include <ftmac.c>.
853
8542007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
855
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000856 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
857 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
858 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
859 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
860 FT_GetFilePath_From_Mac_ATS_Name.
861 * builds/mac/ftmac.c: Ditto.
862
8632007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
864
Werner Lembergdcbb7082007-02-08 08:54:09 +0000865 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000866 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
867 for passing to FT_New_Face_From_FSSpec.
868
8692007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
870
Werner Lembergdcbb7082007-02-08 08:54:09 +0000871 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000872 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000873
874 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
875 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000876 * builds/mac/ftmac.c (OS_INLINE): Ditto.
877
Werner Lemberg313d7772007-02-01 08:10:45 +00008782007-02-01 Werner Lemberg <wl@gnu.org>
879
880 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
881 Explain why applications shouldn't use it. Found by Alexei.
882
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00008832007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000884
885 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
886 message.
887
888 * src/gxvalid/gxvmort1.c
889 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
890 message.
891
Werner Lemberg53935932007-01-31 08:53:02 +00008922007-01-31 Werner Lemberg <wl@gnu.org>
893
894
895 * Version 2.3.1 released.
896 =========================
897
898
899 Tag sources with `VER-2-3-1-FINAL'.
900
901 * builds/win32/visualc/freetype.dsp,
902 builds/win32/visualc/freetype.vcproj: s/230/231/.
903 * builds/win32/visualc/index.html: s/221/231/.
904
905 * vms_make.com: Add `ftgasp'.
906
David Turnera7ee6082007-01-30 10:33:53 +00009072007-01-30 David Turner <david@freetype.org>
908
Werner Lemberg53935932007-01-31 08:53:02 +0000909 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000910
Werner Lemberg53935932007-01-31 08:53:02 +0000911 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000912
Werner Lemberg25d592a2007-03-09 07:59:35 +0000913 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000914 s/2.3.0/2.3.1/.
915
916 * builds/unix/configure.raw (version_info): Set to 9:12:3.
917
918
919 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
920 (af_loader_load_g): Disable the warper (i.e., the light hinting
921 improvements) to make a 2.3.1 bugfix release before introducing a
922 new feature. This should give us more time to tune and improve the
923 warper for the next release.
924
925 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000926
David Turnerd91eebd2007-01-26 15:05:41 +00009272007-01-25 David Turner <david@freetype.org>
928
Werner Lembergbf241762007-01-26 16:08:49 +0000929 For light auto-hinting, improve glyph advance widths and resurrect
930 normal/full hinting to its normal quality.
931
932 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
933 and `xmax_delta'.
934 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
935 and `xmax_delta'.
936
937 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
938 preprocessor conditional with if-clause, handling both light and
939 normal mode.
940
941 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
942 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000943
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00009442007-01-25 Werner Lemberg <wl@gnu.org>
945
946 * docs/release: Updated -- Savannah uses a new uploading scheme.
947
David Turnera42567b2007-01-25 12:23:37 +00009482007-01-25 David Turner <david@freetype.org>
949
Werner Lembergd7855662007-01-25 13:53:56 +0000950 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000951
Werner Lembergd7855662007-01-25 13:53:56 +0000952 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
953 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
954 functions.
David Turnera42567b2007-01-25 12:23:37 +0000955
Werner Lembergd7855662007-01-25 13:53:56 +0000956 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000957
Werner Lembergb1be9e82007-01-25 11:50:00 +00009582007-01-25 Werner Lemberg <wl@gnu.org>
959
960 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000961 correctly in a sanity check. Since this function is only used to
962 load local and global functions, any charstring that called the last
963 local/global function would fail otherwise. This fixes Savannah bug
964 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000965
966 * docs/CHANGES: Document it.
967
David Turnerb6de8d12007-01-23 15:51:50 +00009682007-01-23 David Turner <david@freetype.org>
969
Werner Lembergb1be9e82007-01-25 11:50:00 +0000970 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
971 prevented compilation when disabling both the unpatented and the
972 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000973
Werner Lembergb1be9e82007-01-25 11:50:00 +0000974
975 Fix and enable the warper to improve `light' hinting mode. This is
976 not necessarily a final version, but it seems to work well.
977
978 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
979 Disable code.
980 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
981 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
982
983 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
984 (af_warper_compute_line_best): Fix array size of `scores'.
985 (af_warper_compute): Better handling of border cases.
986 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
987 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000988
Werner Lemberg011d1112007-01-21 09:36:00 +00009892007-01-21 Werner Lemberg <wl@gnu.org>
990
Werner Lemberg42b63b22007-01-21 21:01:33 +0000991 * ChangeLog: Split off older entries into...
992 * ChangeLog.22: This new file.
993
9942007-01-21 Werner Lemberg <wl@gnu.org>
995
Werner Lemberg555258f2007-01-21 09:46:37 +0000996 * docs/CHANGES: Document SHZ fix.
997
9982007-01-21 George Williams <gww@silcom.com>
999
1000 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1001 points.
1002
10032007-01-21 Werner Lemberg <wl@gnu.org>
1004
Werner Lemberg011d1112007-01-21 09:36:00 +00001005 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1006 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1007
Werner Lemberg87a5a432007-01-17 12:44:39 +000010082007-01-17 Werner Lemberg <wl@gnu.org>
1009
Werner Lembergb8003292007-01-17 12:56:25 +00001010
1011 * Version 2.3.0 released.
1012 =========================
1013
1014
1015 Tag sources with `VER-2-3-0-FINAL'.
1016
10172007-01-17 Werner Lemberg <wl@gnu.org>
1018
Werner Lemberg87a5a432007-01-17 12:44:39 +00001019 * docs/release: Updated.
1020
David Turner22122722007-01-16 20:06:44 +000010212007-01-16 David Turner <david@freetype.org>
1022
Werner Lemberg87a5a432007-01-17 12:44:39 +00001023 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1024 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1025 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1026 warnings.
David Turner22122722007-01-16 20:06:44 +00001027
Werner Lemberg267e1d72007-01-15 07:48:09 +000010282007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1029
1030 * builds/amiga/makefile, builds/amiga/makefile.os4,
1031 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1032
1033 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1034
Werner Lemberg8c4120d2007-01-15 06:42:40 +000010352007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1036
1037 Fix various compiler warnings.
1038
1039 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1040 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1041 s/index/strike_index/.
1042 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1043
1044 * src/gxvalid/gxvmorx5.c
1045 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1046
1047 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1048 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1049 uninitialized variables.
1050
Werner Lemberg6164a9d2007-01-13 23:01:36 +000010512007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1052
1053 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1054
Werner Lemberg281c1482007-01-13 22:50:51 +000010552007-01-13 Werner Lemberg <wl@gnu.org>
1056
1057 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1058 versions up to 0x3FF without complaining.
1059
Werner Lembergac250b22007-01-13 14:01:36 +000010602007-01-13 Derek Clegg <dclegg@apple.com>
1061
1062 Add FT_Get_PS_Font_Info interface to CFF driver.
1063
1064 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1065 (CFF_FontRec): Add `font_info' field.
1066
1067 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1068 (cff_font_done): Free font->font_info if necessary.
1069
1070 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1071 (cff_service_ps_info): Register cff_ps_get_font_info.
1072
Werner Lemberg23df31a2007-01-13 08:45:00 +000010732007-01-13 Werner Lemberg <wl@gnu.org>
1074
1075 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1076 with C++ compiler.
1077
1078 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1079 af_glyph_hints_dump_edges): Ditto.
1080
1081 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1082 `modules.cfg').
1083
1084 * src/sfnt/ttsbit0.h: Remove.
1085
1086 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1087
Werner Lemberg27cf9de2007-01-13 07:34:23 +000010882007-01-12 David Turner <david@freetype.org>
1089
1090 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1091 bug in the bitmap emboldener if the pitch of the source bitmap is
1092 much larger than its width.
1093
1094 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1095 compilation warning.
1096
Werner Lemberg6d96d312007-01-12 10:30:19 +000010972007-01-12 Werner Lemberg <wl@gnu.org>
1098
1099 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1100 `automake' CVS module from sources.redhat.com.
1101
Werner Lemberg17432b52007-01-12 09:28:44 +000011022007-01-11 Werner Lemberg <wl@gnu.org>
1103
1104 * src/type1/t1load.c (is_space): Removed.
1105 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1106 (parse_charstrings): Use IS_PS_TOKEN.
1107
1108
1109 * autogen.sh: Avoid bash specific syntax.
1110
David Turner038ace22007-01-11 15:00:59 +000011112007-01-11 David Turner <david@freetype.org>
1112
Werner Lemberg17432b52007-01-12 09:28:44 +00001113 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001114
Werner Lemberg17432b52007-01-12 09:28:44 +00001115 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001116
Werner Lemberg17432b52007-01-12 09:28:44 +00001117 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1118 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001119 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001120
Werner Lemberg17432b52007-01-12 09:28:44 +00001121 * autogen.sh: Small fix to get it working on Mac OS X properly:
1122 The issue is that GNU libtool is called `glibtool' on this platform,
1123 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001124
David Turner2628ea92007-01-10 13:15:56 +000011252007-01-10 David Turner <david@freetype.org>
1126
Werner Lemberg17432b52007-01-12 09:28:44 +00001127 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1128 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001129
Werner Lemberg17432b52007-01-12 09:28:44 +00001130 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1131 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1132 version number to 2.3.0.
1133
1134 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1135 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001136
1137 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001138 include/freetype/ftlcdfil.h: Update reference documentation with
1139 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001140
Werner Lemberg17432b52007-01-12 09:28:44 +00001141 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1142 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001143
Werner Lembergbf02d392007-01-10 07:07:37 +000011442007-01-10 Derek Clegg <dclegg@apple.com>
1145
1146 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1147 values.
1148
David Turnerf48b60e2007-01-08 15:15:32 +000011492007-01-08 David Turner <david@freetype.org>
1150
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001151 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001152
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001153 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1154 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001155 corresponding to a given character pixel size.
1156
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001157 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1158 `gasp' table, in order to avoid potential problems with later
1159 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001160
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001161 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1162 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001163
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001164 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1165 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1166 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1167 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001168
Werner Lemberge6b6f372007-01-07 00:06:47 +000011692007-01-07 Werner Lemberg <wl@gnu.org>
1170
Werner Lembergb8004d22007-01-07 09:13:38 +00001171 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1172 Type 11 fonts.
1173 Scan for `/sfnts' token.
1174
11752007-01-07 Werner Lemberg <wl@gnu.org>
1176
1177 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001178
Werner Lembergbe5f7972007-01-06 07:51:48 +000011792007-01-06 Werner Lemberg <wl@gnu.org>
1180
1181 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1182 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1183
David Turnera8cf42b2007-01-04 16:46:46 +000011842007-01-04 David Turner <david@freetype.org>
1185
Werner Lembergf6294392007-01-06 07:47:45 +00001186 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1187 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001188
Werner Lembergf6294392007-01-06 07:47:45 +00001189
1190 Do not allocate interpreter-specific tables in memory if we are not
1191 going to load glyphs with the bytecode interpreter anyway.
1192
1193 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1194 only if glyph is hinted.
1195 Updated.
1196 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1197 and `cvs_ready'.
1198 Add `tt_size_ready_bytecode' declaration.
1199 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1200 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1201 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1202 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1203 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001204
David Turner91a34022007-01-05 14:47:08 +00001205
Werner Lembergf6294392007-01-06 07:47:45 +00001206 Don't extract the metrics table from the SFNT font file. Instead,
1207 reparse it on each glyph load. The runtime difference is not
1208 noticeable, and it can save a lot of heap memory when memory-mapped
1209 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001210
Werner Lembergf6294392007-01-06 07:47:45 +00001211 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1212 `horz_metrics_offset' and `vert_metrics_ofset'.
1213 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1214 Updated.
1215
1216
1217 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1218
1219
1220 Do not load the CFF index offsets into memory, since this wastes a
1221 *lot* of heap memory with large Asian CFF fonts. There is no
1222 significant performance loss.
1223
1224 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1225 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1226 `data_size'.
1227 (CFF_CharsetRec): Add field `num_glyphs'.
1228
1229 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1230 cff_charset_cid_to_gindex): New functions.
1231 (cff_new_index): Renamed to...
1232 (cff_index_init): This. Update all callers.
1233 Updated -- some code has been moved to `cff_index_load_offsets'.
1234 (cff_done_index): Renamed to...
1235 (cff_index_done): This. Update all callers.
1236 (cff_index_get_pointers, cff_index_access_element): Updated to use
1237 stream offsets.
1238 (cff_charset_compute_cids): Set `num_glyphs' field.
1239 (cff_encoding_load): Updated.
1240
1241 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001242
12432007-01-04 David Turner <david@freetype.org>
1244
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001245 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1246 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001247
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001248 * README.CVS: Add common problem description and solution
1249 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001250
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001251 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001252
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001253 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001254
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001255 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001256
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001257 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1258 (TWorker): This.
1259 Remove `count_table' and `memory'.
1260 Make `grays' a pointer.
1261 (TRaster): New structure.
1262 (count_table): New static array.
1263 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1264 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1265 ft_black_set_mode, ft_black_render): Updated.
1266 (ft_black_init): Don't initialize `count_table'.
1267 (ft_black_reset): Use the render pool. This saves about 6KB of
1268 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001269
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001270 * src/smooth/ftgrays.c (TRaster): Replaced with...
1271 (TWorker): This.
1272 Remove `memory'.
1273 (TRaster): New structure.
1274
1275 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1276 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1277 gray_render_span, gray_raster_render): Updated.
1278 (gray_raster_reset): Use the render pool. This saves about 6KB of
1279 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001280
David Turner8a6c44e2007-01-04 17:03:11 +00001281 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1282 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001283 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1284 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1285 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001286
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001287 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1288 Remove a typo that results in no hinting and a memory leak with some
1289 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001290
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001291 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001292 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001293 CFF_Faces in it. We need to close all faces before destroying the
1294 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001295
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000012962007-01-02 Werner Lemberg <wl@gnu.org>
1297
1298 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1299 Remove compiler warning.
1300
David Turner9207e002007-01-02 16:58:13 +000013012007-01-02 David Turner <david@freetype.org>
1302
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001303 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001304
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000013052006-12-31 Masatake YAMATO <jet@gyve.org>
1306
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001307 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1308 function.
1309 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001310 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001311 `gxv_kern_subtable_fmt0_pairs_validate'.
1312
David Turner115b4422006-12-22 11:37:05 +000013132006-12-22 David Turner <david@freetype.org>
1314
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001315 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1316 warnings.
David Turner115b4422006-12-22 11:37:05 +00001317
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001318 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1319 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001320
Werner Lemberg4755bf72006-12-16 08:58:44 +000013212006-12-16 Anders Kaseorg <anders@kaseorg.com>
1322
1323 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1324 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1325
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000013262006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1327
Werner Lemberg9b774e22007-01-16 06:11:27 +00001328 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001329 sync with the modification by Jens Claudius on 2006-08-22; cf.
1330 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 +00001331
13322006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1333
1334 * src/base/ftmac.c: Specialized for Mac OS X only.
1335 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1336 * builds/unix/configure.raw: Ditto. When explicit switches for
1337 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1338 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1339
13402006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1341
1342 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1343 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1344 instead of src/base/ftmac.c
1345 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1346 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1347 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1348 that cannot be built at present.
1349
13502006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1351
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001352 * src/base/ftobjs.c: Improvement of resource fork handler for
1353 POSIX, cf.
1354 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001355 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1356 format or .dfont, to simulate the face index number counted by ftmac.c.
1357 (IsMacResource): Return the number of scalable faces correctly.
1358
Werner Lembergec5b4502006-12-10 07:51:38 +000013592006-12-10 Werner Lemberg <wl@gnu.org>
1360
1361 * builds/toplevel.mk (version): Protect against `distclean' target.
1362
Werner Lembergb26b3142006-12-09 20:01:43 +000013632006-12-09 Werner Lemberg <wl@gnu.org>
1364
1365 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1366 or `type'.
1367
1368 * builds/freetype.mk (version): Extracted from freetype.h, using
1369 GNU make's built-in string functions.
1370 (refdoc): Use $(version) instead of static version number.
1371
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000013722006-12-08 Werner Lemberg <wl@gnu.org>
1373
1374 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1375
Werner Lemberg15c29502006-12-09 07:29:54 +000013762006-12-08 Vladimir Volovich <vvv@vsu.ru>
1377
1378 * src/tools/apinames (State): Remove final comma in structure -- xlc
1379 v5 under AIX 4.3 doesn't like this.
1380
David Turnerdbf3b432006-12-07 21:18:09 +000013812006-12-07 David Turner <david@freetype.org>
1382
Werner Lemberg256a3512006-12-08 06:49:33 +00001383 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1384 to the spacing of auto-fitted glyphs. This only impacts rare
1385 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001386
Werner Lemberg11171312006-12-03 09:43:40 +000013872006-12-03 Werner Lemberg <wl@gnu.org>
1388
1389 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1390
Werner Lemberg960ba592006-12-01 08:20:47 +000013912006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001392
Werner Lemberg960ba592006-12-01 08:20:47 +00001393 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1394 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1395 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001396
David Turner80658e52006-11-28 08:09:20 +00001397
Werner Lemberg960ba592006-12-01 08:20:47 +00001398 * include/freetype/ftxf86.h: Fix and extend comment so that it
1399 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001400
Werner Lemberg960ba592006-12-01 08:20:47 +00001401 * include/freetype/ftchapters.h: Add `font_format' section.
1402
1403
1404 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1405 to TOC in index page.
1406
14072006-11-28 David Turner <david@freetype.org>
1408
1409 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1410 trying to render into a zero-width/height bitmap, not an error code.
1411
1412 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1413
1414 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1415 ones instead.
1416
1417 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1418 variable.
David Turner80658e52006-11-28 08:09:20 +00001419
Werner Lemberg8636c292006-11-26 22:28:13 +000014202006-11-26 Pierre Hanser <hanser@club-internet.fr>
1421
1422 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1423
Werner Lemberg960ba592006-12-01 08:20:47 +000014242006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001425
Werner Lemberg960ba592006-12-01 08:20:47 +00001426 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1427 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1428 Add stubs to link the `ftgrid' test program when debugging is
1429 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001430
Werner Lemberg960ba592006-12-01 08:20:47 +000014312006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001432
1433 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001434 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1435
1436 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1437 Emit more sensible information.
1438
1439 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1440
1441 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1442 rounding of blue values.
1443 (af_latin_hints_compute_segments): Hint segment heights.
1444 (af_latin_hints_link_segments): Reduce `len_score' value.
1445 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1446 value and use `height' member for comparisons.
1447 (af_latin_hint_edges): Extend logging message.
1448 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001449
Werner Lemberg91959bf2006-11-22 10:36:55 +000014502006-11-22 Werner Lemberg <wl@gnu.org>
1451
1452 Fix Savannah bug #15553.
1453
1454 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1455 program after a change from mono to grayscaling (and vice versa).
1456 Use correct constant for comparison to get `exec->grayscale'.
1457
Werner Lemberg913a3652006-11-19 09:19:17 +000014582006-11-18 Werner Lemberg <wl@gnu.org>
1459
1460 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001461 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001462 This patch fixes Savannah bug #18301.
1463
1464 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1465 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1466 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1467 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1468 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1469 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1470 (FNT_Load_Glyph): Check validity of `glyph_index'.
1471
David Turner7bab6ae2006-11-13 11:25:06 +000014722006-11-13 David Turner <david@freetype.org>
1473
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001474 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1475 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001476
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001477 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1478 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1479 when building the library to change the default LCD filter to be
1480 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001481
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001482 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001483
David Turner8765c712006-11-10 16:49:42 +000014842006-11-10 David Turner <david@freetype.org>
1485
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001486 * src/smooth/ftsmooth.c: API change for the LCD
1487 filter. The FT_LcdFilter value is an enumeration describing which
1488 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1489 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1490 algorithm which produces strong color fringes for everything
1491 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001492
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001493 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1494 second parameter to an enum type.
1495
1496 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1497 (_ft_lcd_filter): Rename to...
1498 (_ft_lcd_filter_fir): This.
1499 Update parameters.
1500 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1501 (FT_Library_Set_LcdFilter): Update parameters.
1502 Handle new filter modes.
1503
1504 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1505 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1506 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1507 callback and update other fields.
1508
1509 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1510 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1511 Other minor improvements.
1512
1513 * src/autofit/aflatin.c: Various tiny improvements that drastically
1514 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1515 (af_latin_hints_compute_edges): Fix typo.
1516 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001517
David Turner4e9cc3c2006-11-09 16:31:52 +000015182006-11-09 David Turner <david@freetype.org>
1519
Werner Lemberg49c77a82006-11-09 21:51:57 +00001520 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1521 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001522
Werner Lemberg5e430892006-11-07 09:35:03 +000015232006-11-07 Zhe Su <james.su@gmail.com>
1524
1525 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1526 also.
1527
Werner Lemberg111b5ae2006-11-03 09:40:12 +000015282006-11-03 Werner Lemberg <wl@gnu.org>
1529
1530 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1531
David Turner40604742006-11-02 16:37:35 +000015322006-11-02 David Turner <david@freetype.org>
1533
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001534 Add a few tweaks to better handle serif fonts.
1535 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001536
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001537 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1538 segments that are less than 1.5 pixels high. This gets rid of
1539 *many* corner cases with serifs.
1540 (af_latin_align_linked_edge): Add logging message.
1541 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1542 Add logging messages.
1543 Handle AF_EDGE_FLAG flag specially.
1544
1545 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1546 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1547
1548 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1549 Update external declarations.
1550 (af_corner_orientation, af_corner_is_flat): Replaced by...
1551
1552 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1553 ft_corner_is_flat): These declarations.
1554
1555 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1556 Comment out. Replaced by...
1557
1558 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1559 These functions. Update all callers.
1560 (FT_Add64) [!FT_LONG64]: Simplify.
1561
1562 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1563 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1564 production of garbage by missing lots of segments.
1565
1566 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1567
1568 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1569 [AF_DEBUG]: Set _af_debug_hints.
1570
1571
1572 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1573 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1574 and ft_corner_orientation.
1575
1576
1577 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001578
Werner Lemberge88c5262006-10-24 05:46:26 +000015792006-10-24 Werner Lemberg <wl@gnu.org>
1580
1581 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1582
1583 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1584 as argument.
1585
David Turnera1861392006-10-23 16:00:59 +000015862006-10-23 Zhe Su <zsu@novell.com>
1587
Werner Lemberg715e96e2006-10-24 05:28:45 +00001588 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1589 better deal with broken Asian fonts with strange glyphs, having
1590 self-intersections and other peculiarities. The used algorithm is
1591 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001592
David Turnere140f142006-10-23 08:56:57 +000015932006-10-23 David Turner <david@freetype.org>
1594
Werner Lemberg715e96e2006-10-24 05:28:45 +00001595 Speed up the CFF font loader. With some large CFF fonts,
1596 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001597
Werner Lemberg715e96e2006-10-24 05:28:45 +00001598 * src/cff/cffload.c (cff_get_offset): Removed.
1599 (cff_new_index): Inline functionality of `cff_get_offset'.
1600 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1601 (cff_charset_done): Call `cff_charset_free_cids'.
1602 (cff_charset_load): Call `cff_charset_compute_cids'.
1603 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1604
1605 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1606 with FT_NEXT_XXX.
1607
1608
1609 Speed up the Postscript hinter, with more than 100% speed increase
1610 on my machine.
1611
1612 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1613 psh_corner_orientation): New functions.
1614 (psh_glyph_compute_inflections): Merge loops for efficiency.
1615 Use `psh_corner_orientation'.
1616 (psh_glyph_init): Use `psh_corner_is_flat'.
1617 (psh_hint_table_find_strong_point): Renamed to...
1618 (psh_hint_table_find_strong_points): This.
1619 Rewrite, adding argument to handle all points at once.
1620 Update all callers.
1621 (PSH_MAX_STRONG_INTERNAL): New macro.
1622 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001623
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000016242006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1625
1626 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001627 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001628
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000016292006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1630
1631 * docs/INSTALL.CROSS: New document file for cross-building.
1632
1633 * builds/unix/configure.raw: Preliminary cross-building support.
1634 Find native C compiler and pass it by CC_BUILD, and
1635 find suffix for native executable and pass it by EXEEXT_BUILD.
1636 Also suffix for target executable is passed by EXEEXT.
1637
Werner Lembergb9e6d692006-10-15 08:58:40 +00001638 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1639 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001640 CC_BUILD and EXEEXT_BUILD.
1641
Werner Lembergb9e6d692006-10-15 08:58:40 +00001642 * builds/exports.mk (APINAMES_EXE): Change the extension for
1643 apinames from the suffix for target (E) to that for building host
1644 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001645
Werner Lemberg82a07e92006-10-12 06:20:44 +000016462006-10-12 Werner Lemberg <wl@gnu.org>
1647
1648 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1649 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1650 which reference those files.
1651
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000016522006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1653
Werner Lembergb9e6d692006-10-15 08:58:40 +00001654 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1655 embedded in freetype2.pc and freetype-config. Use it to record
1656 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001657
1658 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1659
1660 * builds/unix/freetype-config.in: Ditto.
1661
Werner Lemberg28e17d92006-10-11 17:27:47 +000016622006-10-11 Werner Lemberg <wl@gnu.org>
1663
1664 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1665 development.
1666
Jens Claudius336d2292006-10-03 08:53:37 +000016672006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1668
1669 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1670 argument to ft_setjmp.
1671
1672 * include/freetype/internal/ftvalid.h: Add comment that
1673 ft_validator_run must not be used.
1674
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016752006-10-01 Werner Lemberg <wl@gnu.org>
1676
1677 * src/base/ftbase.c: Undo change from 2006-09-30.
1678
1679 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1680
16812006-09-30 David Turner <david@freetype.org>
1682
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001683 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1684 s/unpatented_hinting/ignore_unpatented_hinter/.
1685 Update all callers.
1686
1687 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1688 auto-hinting shall be used or not.
1689
1690 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001691
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016922006-09-30 Werner Lemberg <wl@gnu.org>
1693
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001694 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1695 in use).
1696
1697 * src/base/ftbase.c: Include `ftlcdfil.c'.
1698
Werner Lemberg9b15ea32006-09-29 18:22:11 +000016992006-09-29 Werner Lemberg <wl@gnu.org>
1700
1701 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1702 overlapping segments. Bug reported by Stefan Koch.
1703
David Turnerad830712006-09-27 16:20:59 +000017042006-09-28 David Turner <david@freetype.org>
1705
Werner Lemberg2c002e12006-09-29 21:31:53 +00001706 Fix a bug in the automatic unpatented hinting support which prevents
1707 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001708
Werner Lemberg2c002e12006-09-29 21:31:53 +00001709 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1710 s/force_autohint/unpatented_hinting/. Update all callers.
1711
1712 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1713
1714 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001715
David Turner8a317cf2006-09-27 07:52:48 +000017162006-09-27 David Turner <david@freetype.org>
1717
Werner Lemberg2c002e12006-09-29 21:31:53 +00001718 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001719
David Turner8a317cf2006-09-27 07:52:48 +00001720
David Turnere140f142006-10-23 08:56:57 +00001721 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001722 In a default build, the function `FT_Library_SetLcdFilter' returns
1723 `FT_Err_Unimplemented_Feature'; you need to #define
1724 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1725 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001726
Werner Lemberg2c002e12006-09-29 21:31:53 +00001727 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001728
Werner Lemberg2c002e12006-09-29 21:31:53 +00001729 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1730 typedef.
1731 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1732 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001733
Werner Lemberg2c002e12006-09-29 21:31:53 +00001734 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1735 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001736
Werner Lemberg2c002e12006-09-29 21:31:53 +00001737 Handle subpixel rendering.
1738 Simplify function.
1739 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1740 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1741
1742 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1743 pointing to <freetype/ftlcdfil.h>.
1744
1745 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1746 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1747
1748 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001749
Werner Lemberge20df4a2006-09-27 06:29:21 +000017502006-09-26 David Bustin
1751
1752 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1753 correctly. Reported as Savannah bug #17843.
1754
David Turner6f8c6222006-09-26 15:42:44 +000017552006-09-26 David Turner <david@freetype.org>
1756
Werner Lemberg110246c2006-09-26 21:55:44 +00001757 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1758 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1759 horizontal and vertical hinting for the purpose of debugging the
1760 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001761
Werner Lemberg110246c2006-09-26 21:55:44 +00001762 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1763 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001764
Werner Lemberg110246c2006-09-26 21:55:44 +00001765 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1766
1767 * include/freetype/config/ftoption.h, devel/ftoption.h
1768 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1769 we want to compile LCD-optimized rendering code (à la ClearType) or
1770 not. The macro *must* be disabled in default builds of the library
1771 for patent reasons.
1772
1773 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1774 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1775 isn't defined at compile time. This only changes the content of the
1776 rendered glyph to match the one of normal gray-level rendering,
1777 hence clients should not need to be modified.
1778
1779 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001780
Werner Lemberg745ff2c2006-09-19 05:48:02 +000017812006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1782
1783 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1784 LWFN fails and both are available.
1785
David Turnerf3050052006-09-11 12:00:32 +000017862006-09-11 David Turner <david@freetype.org>
1787
Werner Lembergf9644552006-09-12 13:48:10 +00001788 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1789 report their English names through an Apple Roman
1790 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001791
Werner Lembergf9644552006-09-12 13:48:10 +00001792 If the font uses another name entry with language_id == English, it
1793 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001794
Werner Lembergf9644552006-09-12 13:48:10 +00001795 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1796 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001797
Werner Lemberg36d2eab2006-09-05 19:24:34 +000017982006-09-05 Werner Lemberg <wl@gnu.org>
1799
1800 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001801 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001802 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1803 `HAN NOM B.ttf').
1804
1805 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1806
David Turner772e55d2006-09-05 09:45:15 +000018072006-09-05 David Turner <david@freetype.org>
1808
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001809 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001810
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001811 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1812 (TRaster): Remove `count_ex' and `count_ey'.
1813 (gray_find_cell): Remove 2nd and 3rd argument.
1814 (gray_alloc_cell): Merged with `gray_find_cell'.
1815 (gray_record_cell): Simplify.
1816 (gray_set_cell): Rewrite.
1817 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1818 (gray_render_span): Don't use FT_MEM_SET for small values.
1819 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1820 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1821 bitmap scanline.
1822 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001823
David Turneraa557a92006-09-04 16:42:44 +000018242006-09-04 David Turner <david@freetype.org>
1825
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001826 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1827 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001828
Werner Lemberg2d8629b2006-09-03 06:18:45 +000018292006-09-03 Werner Lemberg <wl@gnu.org>
1830
1831 * devel/ftoption.h: Synchronize with
1832 include/freetype/config/ftoption.h.
1833
1834 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1835 variable declaration.
1836 (gray_convert_glyph): Fix compiler warnings.
1837
David Turner6d79f212006-09-01 14:09:35 +000018382006-09-01 David Turner <david@freetype.org>
1839
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001840 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1841 to recognize a few fonts that require the automatic unpatented
1842 loader.
David Turnerbd502952006-09-01 19:05:24 +00001843
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001844 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1845 rasterizer. The speed improvement is between 15% and 25%, depending
1846 on the font data.
1847
1848 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1849 (TCell): Redefine.
1850 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1851 (gray_init_cells): Updated.
1852 (gray_find_cell, gray_alloc_cell): New functions.
1853 (gray_record_cell): Rewritten to use `gray_find_cell' and
1854 `gray_alloc_cell'.
1855 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1856 QSORT_THRESHOLD):
1857 Removed.
1858 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1859 gray_dump_cells): Removed.
1860 (gray_sweep): Rewritten.
1861 (gray_convert_glyph): Rewrite code which used one of the sorting
1862 functions.
1863 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001864
Werner Lembergd898aed2006-08-29 09:50:34 +000018652006-08-29 Dr. Werner Fink <werner@suse.de>
1866
1867 * configure: Make it possible to handle configure options which
1868 have strings containing spaces.
1869
18702006-08-27 David Turner <david@freetype.org>
1871
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001872 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1873 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1874 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1875
1876 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1877 src/truetype/truetype.c, src/truetype/ttdriver.c,
1878 src/truetype/ttgload.c, src/truetype/ttgload.h,
1879 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1880 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1881 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1882
1883 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1884 member `force_autohint'.
1885
1886 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1887
1888 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1889 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001890
Jens Claudiusa787f452006-08-27 11:26:18 +000018912006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1892
1893 Fix miscellaneous compiler warnings.
1894
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001895 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1896 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001897
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001898 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1899 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1900 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001901
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001902 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1903 volatileness of argument to ft_longjmp. Spotted by Werner
1904 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001905
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001906 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1907 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001908
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001909 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1910 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001911
Werner Lembergc4c35b72006-08-27 08:03:46 +000019122006-08-27 Werner Lemberg <wl@gnu.org>
1913
1914 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1915 Reported by Jens.
1916
Jens Claudius088e44e2006-08-22 14:24:30 +000019172006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001918
Jens Claudius088e44e2006-08-22 14:24:30 +00001919 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001920 about addresses of volatile objects passed as function arguments as
1921 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001922
Werner Lembergc4c35b72006-08-27 08:03:46 +00001923 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1924 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001925
1926 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1927 argument `table' a pointer to a volatile object.
1928
1929 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1930 argument `table' a pointer to a volatile object.
1931
Jens Claudius2652bd52006-08-18 17:20:37 +000019322006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1933
1934 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1935 variable `_sfnt' as volatile since it must keep its value across
1936 a call to ft_setjmp.
1937 (gxv_validate): Same for local variables `memory' and `valid'.
1938 (classic_kern_validate): Same for local variables `memory',
1939 `ckern', and `valid'.
1940
1941 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1942 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1943 `jstf', and 'valid'.
1944
1945 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1946 local variable `cmap'.
1947
David Turner9fbfc6a2006-08-16 09:11:31 +000019482006-08-16 David Turner <david@freetype.org>
1949
Werner Lemberg12342992006-08-19 11:18:09 +00001950 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1951 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001952
Werner Lemberg12342992006-08-19 11:18:09 +00001953 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1954 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001955
David Turner33f5f242006-08-16 16:50:55 +00001956
Werner Lemberg12342992006-08-19 11:18:09 +00001957 Improvements to native TrueType hinting. This is a first try,
1958 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1959
1960 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1961 `extra_points2'.
1962
1963 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1964 `orus'.
1965
1966 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1967 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1968 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1969 handle `extra_points2'.
1970
1971 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1972 Remove compiler warning.
1973 (cur_to_arg): Remove macro.
1974 (TT_Hint_Glyph): Updated.
1975 (TT_Process_Simple_Glyph): Handle `orus'.
1976
1977 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1978 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1979 (LOC_Ins_IUP): Renamed to...
1980 (IUP_WorkerRec): This.
1981 Add `orus' member.
1982 (Shift): Renamed to...
1983 (_iup_worker_shift): This.
1984 Updated.
1985 (Interp): Renamed to...
1986 (_iup_worker_interpolate): This.
1987 Updated to handle `orus'.
1988 (Ins_IUP): Updated.
1989
1990 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1991 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001992
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000019932006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1994
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001995 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001996 build ftvalid in ft2demos. This has been inadvertedly changed
1997 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001998
19992006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2000
Werner Lemberg12342992006-08-19 11:18:09 +00002001 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2002 Jens:
2003 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002004
Werner Lemberg12342992006-08-19 11:18:09 +00002005 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2006 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002007
2008 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2009
Jens Claudius9950adc2006-08-13 12:14:36 +000020102006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2011
Werner Lemberg12342992006-08-19 11:18:09 +00002012 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2013 T1_TOKEN_TYPE_KEY.
2014 (T1_FieldRec): Add `dict'.
2015 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2016 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2017 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002018
Werner Lemberg12342992006-08-19 11:18:09 +00002019 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2020 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002021
2022 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2023
2024 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002025 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2026 not T1_TOKEN_TYPE_ANY.
2027 (ps_parser_load_field): Make sure a token that should be a string or
2028 name is really a string or name.
2029 Avoid memory leak if a keyword has been already encountered and its
2030 value is overwritten.
2031 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2032 T1_FIELD_XXX.
2033 (parse_dict): Ignore keywords that occur in the wrong dictionary
2034 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002035
Werner Lemberg12342992006-08-19 11:18:09 +00002036 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2037 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002038
Werner Lemberg12342992006-08-19 11:18:09 +00002039 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2040 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002041
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000020422006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2043
2044 Move creation of field `buildchar' of T1_DecoderRec out of
2045 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2046 of it.
2047
2048 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2049 and `T1_Compute_Max_Advance'.
2050
2051 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2052 Remove field `face', add `len_buildchar'.
2053
2054 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2055 field `buildchar'.
2056
2057 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2058 finisher for T1_Decoder.
2059 (cid_slot_load_glyph): Do not ignore failure when initializing the
2060 T1_Decoder.
2061
2062 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2063 Updated.
2064 (t1_decoder_init): Remove initialization of fields `buildchar' and
2065 `len_buildchar'.
2066 (t1_decoder_done): Remove deallocation of field `buildchar'.
2067
2068 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2069 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2070 T1_Decoder.
2071 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2072 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2073 case of error.
2074
2075 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2076 `buildchar' of T1_FaceRec.
2077
2078 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2079 `buildchar' of T1_FaceRec.
2080
Werner Lemberg1a380e02006-07-14 18:28:08 +000020812006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2082
2083 * freetype2/include/freetype/internal/psaux.h: New macros
2084 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2085 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2086 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2087 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2088 (T1_DecoderRec): New fields `buildchar' and `face'.
2089 (IS_PS_TOKEN): New macro.
2090
2091 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2092 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2093
2094 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2095 `default_design_vector' and `num_default_design_vector'.
2096
2097 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2098 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2099 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2100
2101 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2102 `token' argument to be NULL if we want only to count the number of
2103 tokens.
2104 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2105 want to skip the array.
2106 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2107 want to skip the array.
2108
2109 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2110 support for (partially commented out) othersubrs 19-25, 27, and 28.
2111 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2112 (t1_decoder_done): Release new field `buildchar'.
2113
2114 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2115 functions.
2116 (t1_keywords): Register them.
2117 (t1_allocate_blend): Updated.
2118 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2119 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2120 (parse_dict): Remove `keyword_flags' argument.
2121 Use new macro IS_PS_TOKEN.
2122 Changed function so that later PostScript definitions override
2123 earlier ones.
2124 (t1_init_loader): Initialize new field `keywords_encountered'.
2125 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2126 `len_buildchar'.
2127 Remove `keywords_flags'.
2128
2129 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2130 `keywords_encountered'.
2131 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2132
2133 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2134 New entries for parsing /NDV, /CDV, and /DesignVector.
2135
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000021362006-07-07 Werner Lemberg <wl@gnu.org>
2137
2138 Add many checks to protect against malformed PCF files.
2139
2140 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2141 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2142
2143 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2144 data and check that tables don't overlap (using a simple
2145 bubblesort).
2146 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2147 New macros which give the size of data structures in the data
2148 stream.
2149 (pcf_get_properties): Use rough estimates to get array size limits.
2150 Assign `face->nprops' and `face->properties' earlier so that a call
2151 to PCF_Face_Done can do the clean-up in case of error.
2152 Protect against invalid string offsets.
2153 (pcf_get_metrics): Clean up code.
2154 Adjust tracing message levels.
2155 Use rough estimate to get array size limit.
2156 (pcf_get_bitmaps): Clean up code.
2157 Adjust tracing message levels.
2158 Use rough estimates to get offset limits.
2159 (pcf_get_encodings): Adjust tracing message level.
2160 (pcf_get_accel): Clean up code.
2161
Werner Lemberg8eb05252006-06-27 06:20:01 +000021622006-06-26 Werner Lemberg <wl@gnu.org>
2163
2164 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2165 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2166
Werner Lemberg24703f82006-06-26 19:12:51 +000021672006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2168
2169 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2170 (t1_decoder_parse_charstrings): Operator with
2171 opcode 15 pops its two arguments.
2172 Handle the case where the pops of an othersubr may be part of a
2173 subroutine.
2174 Handle unknown othersubrs gracefully: count their operands and let
2175 the following pop operators push the operands as the results onto
2176 the Type1 stack.
2177 Improve handling of setcurrentpoint opcode.
2178
Werner Lembergc011f4c2006-06-26 09:40:00 +000021792006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2180
2181 The Type 1 parser now skips over top-level procedures as required
2182 for a `Simplified Parser'. This makes the parser more robust as it
2183 doesn't poke around in PostScript code. Additionally, it makes the
2184 FontDirectory hackery in src/type1/t1load.c unnecessary.
2185
2186 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2187 (skip_literal_string): Add FT_Error as return value.
2188 Handle escapes better.
2189 (skip_string): Add FT_Error as return value.
2190 Don't set `parser->error' but return error code directly.
2191 (skip_procedure): New function.
2192 (ps_parser_skip_PS_token): Handle procedures.
2193 Update code.
2194 (ps_parser_to_token): Update code.
2195 (ps_parser_load_field_table): Handle bbox entries also.
2196
2197 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2198 Add commented-out code for synthetic fonts.
2199
Werner Lemberga2da05c2006-06-25 06:27:27 +000022002006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2201
2202 Fix two hinting bugs as reported in
2203 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2204
2205 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2206 `first_point' member.
2207
2208 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2209 `first_point'.
2210 (TT_Process_Composite_Glyph): Always untouch points.
2211
2212 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2213 `first_point' and `last_point' in case of composite glyphs.
2214 (Ins_IUP): Fix computation of `end_point'.
2215
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000022162006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2217
Werner Lembergef3d2c22006-06-25 06:07:14 +00002218 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2219 Mac. The original patch was written by David Sachitano and Lawrence
2220 Coopet, and modified by Sean McBride for MPW compatibility. Only
2221 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002222
Werner Lembergef3d2c22006-06-25 06:07:14 +00002223 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2224 Mac OS X platforms.
2225 (OS_INLINE): Undefine before definition.
2226 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2227 FontAssociation table in FOND resource.
2228 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2229 and fontSize at each entry of FontAssociation table in FOND
2230 resource.
2231 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2232 ffStylOff of FamilyRecord header of FOND resource, the header,
2233 fontSize, fontID at each entry of FontAssociation table, and
2234 StyleMapping table.
2235 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002236
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000022372006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2238
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002239 Public API of TrueTypeGX, OpenType, and classic kern table validator
2240 should return `FT_Err_Unimplemented_Feature' if validation service
2241 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002242 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002243 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2244
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002245 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2246 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2247 unavailable.
2248 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2249 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002250
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002251 * src/base/ftotval.c (FT_OpenType_Validate): Return
2252 FT_Err_Unimplemented_Feature if OpenType validation service is
2253 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002254
Werner Lembergb10e45a2006-06-08 07:32:56 +000022552006-06-08 Werner Lemberg <wl@gnu.org>
2256
2257 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2258 errors.
2259
David Turner5f1f7502006-06-07 05:11:50 +000022602006-06-07 David Turner <david@freetype.org>
2261
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002262 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2263 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2264 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002265
David Turner457b4a82006-06-06 08:14:14 +000022662006-06-06 David Turner <david@freetype.org>
2267
Werner Lemberg4836f952006-06-06 12:54:08 +00002268 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002269
Werner Lemberg4836f952006-06-06 12:54:08 +00002270 We change `ps_unicodes_init' so that it also takes a
2271 `free_glyph_name' callback to release the glyph names returned by
2272 `get_glyph_name'
2273
2274 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2275 Renamed to ...
2276 (PS_GetGlyphNameFunc): This.
2277 (PS_FreeGlyphNameFunc): New typedef.
2278 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2279
2280 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2281 argument.
2282 (cff_sid_free_glyph_name): New function.
2283 (cff_cmap_unicode_init): Updated.
2284
2285 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2286
2287 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2288 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002289
2290
David Turner09717352006-06-04 14:33:08 +000022912006-06-04 David Turner <david@freetype.org>
2292
Werner Lembergd724f202006-06-04 15:17:41 +00002293 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2294 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002295 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002296
Werner Lembergd724f202006-06-04 15:17:41 +00002297 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2298 of `face->num_glyphs' which missed the last glyph, due to
2299 the offset-by-1 computation, since the PFR format doesn't
2300 guarantee that glyph index 0 corresponds to the `missing
2301 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002302
Werner Lemberg33779662006-05-26 06:30:05 +000023032006-05-25 Werner Lemberg <wl@gnu.org>
2304
2305 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2306 `-no-undefined'. Reported by Christian Biesinger.
2307
Werner Lemberg24773d62006-05-20 08:53:13 +000023082006-05-19 Brian Weed <bw@imaginengine.com>
2309
2310 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2311 have debug information, and debug libraries use `C7 compatible'
2312 debug info.
2313
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000023142006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2315
Werner Lemberga6523a62006-05-20 08:47:01 +00002316 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002317 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002318
Werner Lemberga6523a62006-05-20 08:47:01 +00002319 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2320 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002321
2322 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002323 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002324
23252006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2326
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002327 * build/unix/configure.raw: Add a fallback to disable Carbon
2328 dependency, if configured with no options on Mac OS X.
2329
23302006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2331
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002332 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002333 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002334 the second part of Savannah bug #16590.
2335
Werner Lemberg545c4e52006-05-17 22:55:04 +000023362006-05-18 Werner Lemberg <wl@gnu.org>
2337
2338 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2339 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2340
David Turnerdc3ff312006-05-17 12:59:35 +000023412006-05-17 David Turner <david@freetype.org>
2342
Werner Lemberg545c4e52006-05-17 22:55:04 +00002343 This is a major patch used to drastically improve the performance of
2344 loading glyphs. This both speeds up loading the glyph vectors
2345 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002346
Werner Lemberg545c4e52006-05-17 22:55:04 +00002347 We now use inline assembler code with GCC to implement `FT_MulFix',
2348 which is probably the most important function related to the
2349 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002350
Werner Lemberg545c4e52006-05-17 22:55:04 +00002351 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002352
2353
Werner Lemberg545c4e52006-05-17 22:55:04 +00002354 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2355 `cursor' and `limit'.
2356
2357 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2358 New functions.
2359 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2360 [TEST]: Remove.
2361
2362 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2363 code.
2364
2365 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2366 `FT_ZERO'
2367 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2368 (af_glyph_hints_reload: Rewrite recognition of weak points.
2369
2370 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2371 constant values out of the loops.
2372
2373 * src/autofit/aftypes.h: Updated.
2374
2375 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2376
2377 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2378 product to get orientation.
2379
2380 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2381 (FT_Stream_OpenGzip): Use it to handle small files directly in
2382 memory.
2383
2384 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2385 Improve performance.
2386
2387 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2388 `limit'.
2389
2390 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2391 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2392 exceedingly large values of number of contours. Speed up by
2393 reducing the number of loops.
2394
2395 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2396
2397
2398 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2399 used to detect rogue clients from 4 to 16. This is to prevent some
2400 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2401 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002402
Werner Lembergde2d90a2006-05-17 08:54:30 +000024032007-05-17 Werner Lemberg <wl@gnu.org>
2404
2405 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002406 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002407
24082006-05-16 Werner Lemberg <wl@gnu.org>
2409
2410 * docs/PROBLEMS: Updated icl issues.
2411
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002412----------------------------------------------------------------------------
2413
Werner Lemberg42b63b22007-01-21 21:01:33 +00002414Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002415David Turner, Robert Wilhelm, and Werner Lemberg.
2416
2417This file is part of the FreeType project, and may only be used, modified,
2418and distributed under the terms of the FreeType project license,
2419LICENSE.TXT. By continuing to use, modify, or distribute this file you
2420indicate that you have read the license and understand and accept it
2421fully.
2422
2423
2424Local Variables:
2425version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002426coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002427End: