blob: 3079fed7cd545b956caff4c4efd5f5e3cd28d2de [file] [log] [blame]
Werner Lembergef915c32007-07-16 20:46:05 +000012007-07-16 Werner Lemberg <wl@gnu.org>
2
3 * docs/CHANGES: Updated.
4
52007-07-16 Derek Clegg <dclegg@apple.com>
6
7 Add new service for getting the ROS from a CID font.
8
9 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
10 * include/freetype/ftcid.h: New file.
11
12 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
13 * include/freetype/internal/services/svcid.h: New file.
14
15 * src/base/ftcid.c: New file.
16
17 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
18 (cff_get_ros): New function.
19 (cff_service_cid_info): New service structure.
20 (cff_services): Register it.
21
22 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
23
24 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
25
26 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
27
Werner Lemberg2f109562007-07-11 05:32:00 +0000282007-07-11 Derek Clegg <dclegg@apple.com>
29
30 Add support for postscript name service to CFF driver.
31
32 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
33 (cff_get_ps_name): New function.
34 (cff_service_ps_name): New service structure.
35 (cff_services): Register it.
36
Werner Lembergb003b3e2007-07-08 07:13:12 +0000372007-07-07 Werner Lemberg <wl@gnu.org>
38
39 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
40 `target'. Reported by Sean McBride.
41
Werner Lemberg1e1b6df2007-07-07 07:30:40 +0000422007-07-06 Werner Lemberg <wl@gnu.org>
43
44 * src/pfr/pfrcmap.c: Include pfrerror.h.
45
46 * src/autofit/afindic.c: Add some external declarations to pacify
47 `make multi' compilation.
48
49 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
50
51 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
52 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
53 src/autofit/aflatin.c (af_latin_hints_compute_edges),
54 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
55 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
56 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
57
58 * docs/release: Mention test compilation targets.
59
Werner Lemberg986ea4b2007-07-04 04:53:15 +0000602007-07-04 Werner Lemberg <wl@gnu.org>
61
62 * docs/PROBLEMS: Mention that some PS based fonts can't be
63 handled correctly by FreeType.
64
Werner Lemberg3033f432007-07-04 14:12:19 +000065 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
66 recursion depth of 1. This was the maximum value in TrueType 1.0,
67 and some older fonts don't set this field correctly.
68
69 * src/gxvalid/gxvmort1.c
70 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
71
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000722007-07-03 Werner Lemberg <wl@gnu.org>
73
74 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
75 `round' to pacify compiler.
76
772007-07-02 Werner Lemberg <wl@gnu.org>
78
79
80 * Version 2.3.5 released.
81 =========================
82
83
84 Tag sources with `VER-2-3-5'.
85
86 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
87 version number to 2.3.5.
88
89 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
90 builds/win32/visualc/freetype.dsp,
91 builds/win32/visualc/freetype.vcproj,
92 builds/win32/visualce/index.html,
93 builds/win32/visualce/freetype.dsp,
94 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
95
96 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
97
98 * builds/unix/configure.raw (version_info): Set to 9:16:3.
99
David Turner0ba89912007-07-01 09:34:04 +00001002007-07-01 David Turner <david@freetype.org>
101
Werner Lemberge3be90b2007-07-02 14:58:58 +0000102 * include/freetype/freetype.h, src/base/ftpatent.c
103 (FT_Face_SetUnpatentedHinting): New function to dynamically change
104 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +0000105
Werner Lemberge3be90b2007-07-02 14:58:58 +0000106 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
107 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +0000108
David Turner74cc0e92007-06-30 22:54:12 +00001092007-06-30 David Turner <david@freetype.org>
110
Werner Lemberge3be90b2007-07-02 14:58:58 +0000111 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
112 initialization.
David Turner74cc0e92007-06-30 22:54:12 +0000113
Werner Lemberge3be90b2007-07-02 14:58:58 +0000114 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
115 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +0000116
Werner Lemberg7723dc32007-06-26 04:44:35 +00001172007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
118
119 Add autofit module for Indic scripts. This currently just reuses
120 the CJK-specific functions.
121
122 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
123 macro.
124 * devel/ftoption.h: Synchronize with
125 include/freetype/config/ftoption.h.
126
127 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
128
129 * src/autofit/afglobal.c, src/autofit/aftypes.h,
130 src/autofit/autofit.c: Updated.
131
132 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
133 (AUTOF_DRV_SRC): Updated.
134
David Turner8f626b02007-06-22 22:22:38 +00001352007-06-23 David Turner <david@freetype.org>
136
Werner Lemberg7854c4a2007-06-23 07:16:20 +0000137 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
138 2007-06-16 that prevented the TrueType module from loading most
139 glyphs.
David Turner8f626b02007-06-22 22:22:38 +0000140
Werner Lemberg5b4d4352007-06-20 07:07:55 +00001412007-06-20 Werner Lemberg <wl@gnu.org>
142
143 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
144 change.
145
Werner Lemberg9fe58152007-06-19 07:57:30 +00001462007-06-19 Werner Lemberg <wl@gnu.org>
147
148 * src/type1/t1load.c (parse_encoding): Handle one more error.
149
Werner Lemberg5a829392007-06-19 04:53:30 +00001502007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
151
152 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
153 FNT_Err_Invalid_File_Format if file format was recognized but
154 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
155 Add verbose debug logs to make it easier to debug failing load
156 attempts.
157 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
158 so return an error if requested face index is > 0.
159 Do not do further attempt to load fonts if a previous attempt has
160 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
161 file format has been recognized but no fonts found in the file.
162
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001632007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
164
165 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
166 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
167 the compiler warnings against unused arguments.
168 (FT_ATSFontGetFileReference): Ditto.
169 (FT_GetFile_From_Mac_ATS_Name): Ditto.
170 (FT_New_Face_From_FSSpec): Ditto.
171 (lookup_lwfn_by_fond): Fix wrong comment.
172 Replace `const StringPtr' by more appropriate type
173 `ConstStr255Param'.
174 FSRefMakePathPath always returns UTF8 POSIX pathname in
175 Mach-O, thus HFS pathname support is dropped.
176 (count_faces): Remove HLock and HUnlock which is not
177 required on Mac OS X anymore.
178 (FT_New_Face_From_SFNT): Ditto.
179 (FT_New_Face_From_FOND): Ditto.
180 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
181 except of HFS pathname support and HLock/HUnlock.
182 They are required on classic CFM environment.
183
1842007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +0000185
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000186 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
187 assertion.
188 (ps_parser_to_bytes): Fix error message.
189
Werner Lembergbb2510d2007-06-18 17:07:49 +0000190 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000191 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
192 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +0000193 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +0000194 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000195
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001962007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000197
Werner Lembergf48aec72007-06-18 07:07:55 +0000198 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
199 logic.
200 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
201 correctly.
202 (ps_parser_load_field_table): Use `fields->array_max' instead of
203 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
204
Werner Lemberg95104a42007-06-18 07:33:10 +0000205 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
206 2007-06-06.
207
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002082007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000209
210 * src/tools/ftrandom.c (font_size): New global variable.
211 (TestFace): Use it.
212 (main): Handle new option `--size' to set `font_size'.
213 (Usage): Updated.
214
Werner Lembergbe183eb2007-06-17 11:27:17 +0000215 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
216 invalid font.
217 (FNT_Load_Glyph): Protect against invalid bitmap width.
218
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002192007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000220
Werner Lemberge12ed562007-06-17 05:31:23 +0000221 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
222 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000223
Werner Lemberge12ed562007-06-17 05:31:23 +0000224 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
225 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000226
Werner Lemberge12ed562007-06-17 05:31:23 +0000227 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
228 and `zp2'.
229 (Ins_IP): Check argument ranges to reject bogus operations properly.
230 (IUP_WorkerRec): Add `max_points' member.
231 (_iup_worker_interpolate): Check argument ranges.
232 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000233
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002342007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000235
236 * src/winfonts/winfnt.h: Add necessary structures for PE resource
237 parsing.
238 (WinPE32_HeaderRec): New structure.
239 (WinPE32_SectionRec): New structure.
240 (WinPE_RsrcDirRec): New structure.
241 (WinPE_RsrcDirEntryRec): New structure.
242 (WinPE_RsrcDataEntryRec): New structure.
243 (FNT_FontRec): Remove unused `size_shift' field.
244
245 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
246 loading bitmap .fon files in PE format.
247
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002482007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000249
250 * builds/win32/ftdebug.c: Unify debug level handling with other
251 platforms.
252
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002532007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000254
255 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
256 console as well as to the debugger.
257
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002582007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000259
260 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
261 cover all ranges which could possibly be handled by the aflatin
262 module (since the default fallback for unknown ranges is now the
263 afcjk module). It might be necessary to fine-tune this further by
264 splitting off modules for Greek, Cyrillic, or other blocks.
265
David Turnerb7920172007-06-11 05:37:35 +00002662007-06-11 David Turner <david@freetype.org>
267
Werner Lemberg49e18b82007-06-11 21:15:09 +0000268 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
269 incorrect segment linking computation. This was the root cause of
270 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000271
272
Werner Lemberg49e18b82007-06-11 21:15:09 +0000273 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
274 to improve the Latin auto-hinter. Note that the new code is
275 disabled by default since it is not stabilized yet.
276
277 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
278 (disabled currently).
279
280 * src/autofit/afhints.c: Remove dead code.
281 (af_axis_hints_new_edge): Add argument to handle segment directions.
282 (af_edge_flags_to_string): New function.
283 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
284 option flags.
285 (af_glyph_hints_reload): Add argument to handle inflections.
286 Simplify.
287 (af_direction_compute): Fine tuning.
288 (af_glyph_hints_align_edge_points): Fix logic.
289 (af_glyph_hints_align_strong_points): Do linear search for small
290 edge counts.
291 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
292 (af_iup_shift): Handle zero `delta'.
293
294 * src/autofit/afhints.h: Updated.
295 (AF_SORT_SEGMENTS): New macro (disabled).
296 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
297
298 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
299 argument to pass option flags for handling scripts.
300 * src/autofit/afglobal.h: Updated.
301
302 * src/autofit/afcjk.c: Updated.
303 * src/autofit/aflatin.c: Updated.
304 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
305
306 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
307 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
308 Don't set `edge->dir'
309 (af_latin_hint_edges): Add more logging.
310
311 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000312
Werner Lembergf6c120f2007-06-11 04:55:58 +00003132007-06-11 Werner Lemberg <wl@gnu.org>
314
Werner Lembergcf7b7642007-06-11 04:58:01 +0000315 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000316
David Turner84c6f882007-06-10 20:51:04 +00003172007-06-10 David Turner <david@freetype.org>
318
Werner Lembergf6c120f2007-06-11 04:55:58 +0000319 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
320 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000321
Werner Lembergf6c120f2007-06-11 04:55:58 +0000322 * include/freetype/config/ftoption.h: Clarify documentation
323 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000324
Werner Lembergf6c120f2007-06-11 04:55:58 +0000325
326 Add new `FT_Face_CheckTrueTypePatents' API.
327
328 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
329 declaration.
330
331 * include/freetype/internal/services/svttglyf.h,
332 src/base/ftpatent.c: New files.
333
334 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
335 New macro.
336
337 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
338 `ttpload.h'.
339 (tt_service_truetype_glyf): New service structure.
340 (tt_services): Register it.
341
342 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
343 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000344
Werner Lemberg33db39e2007-06-08 06:30:29 +00003452007-06-08 Werner Lemberg <wl@gnu.org>
346
David Turner84c6f882007-06-10 20:51:04 +0000347 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000348 Fonts without a cmap must be handled correctly by FreeType (anything
349 else would be a bug).
350
351
352 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
353 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
354
Werner Lemberg88ab6382007-06-07 05:01:56 +00003552007-06-07 Werner Lemberg <wl@gnu.org>
356
357 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
358 tt_sbit_decoder_load_image): Protect against integer overflows.
359
360
361 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
362 for `x_control' and `y_control'.
363
Werner Lemberg2a2dca62007-06-06 04:39:37 +00003642007-06-06 Werner Lemberg <wl@gnu.org>
365
366 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
367
Werner Lemberga8d65492007-06-06 04:47:49 +0000368
369 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
370 FreeType error.
371
Werner Lemberg470210b2007-06-06 10:05:49 +0000372
373 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
374 `font_count'.
375
376
377 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
378
379
380 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
381 `FT_Error'.
382 Check `fd_index'.
383 (cff_slot_load): Updated.
384 * src/cff/cffgload.h: Updated.
385
Werner Lemberg6c054752007-06-05 05:27:54 +00003862007-06-05 Werner Lemberg <wl@gnu.org>
387
388 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
389 (pfr_glyph_load_simple): Convert assertion into normal FreeType
390 error.
391 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000392 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
393 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000394
395 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
396
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000397
Werner Lemberg470210b2007-06-06 10:05:49 +0000398 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000399
Werner Lemberge5c14d92007-06-05 20:50:37 +0000400
401 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
402 in case of parsing error.
403 (ps_parser_load_field): Updated.
404
405 * src/type1/t1load.c (parse_font_matrix): Updated.
406
Werner Lembergad18b362007-06-04 07:04:05 +00004072007-06-04 Werner Lemberg <wl@gnu.org>
408
409 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
410
411 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
412
Werner Lemberg3d507fe2007-06-03 16:54:55 +00004132007-06-03 Werner Lemberg <wl@gnu.org>
414
Werner Lemberg99a320b2007-06-03 19:21:26 +0000415 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
416 George Williams (with some modifications).
417
4182007-06-03 Werner Lemberg <wl@gnu.org>
419
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000420 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
421 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
422 face == NULL. Suggested by Graham Asher.
423
Werner Lembergce280a22007-06-03 05:58:30 +00004242007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
425
426 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
427
Werner Lemberg5b591e42007-06-01 22:16:43 +00004282007-06-02 Werner Lemberg <wl@gnu.org>
429
430 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
431 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
432
433 * src/bdf/bdflib.c (bdf_load_font): Use them.
434
435 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
436
Werner Lembergb9933f42007-06-01 21:27:12 +00004372007-06-01 Werner Lemberg <wl@gnu.org>
438
439 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
440 (FTC_CMapCache_Lookup): Remove unused code.
441
Werner Lembergc793d902007-06-01 20:51:11 +00004422007-06-01 Sean McBride <sean@rogue-research.com>
443
444 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
445 unused.
446
Werner Lembergbebc7b12007-06-01 06:32:30 +00004472007-06-01 Werner Lemberg <wl@gnu.org>
448
449 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
450 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000451 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000452
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000453 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
454 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
455
Werner Lembergba03af62007-05-30 13:57:02 +00004562007-05-30 Werner Lemberg <wl@gnu.org>
457
458 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
459 against too small binary data strings.
460
461 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
462
David Turnerf0cd69c2007-05-28 15:42:09 +00004632007-05-28 David Turner <david@freetype.org>
464
Werner Lemberg99e0c182007-05-29 07:00:23 +0000465 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
466 transformation. This significantly reduces the loading time of CFF
467 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000468
Werner Lemberg99e0c182007-05-29 07:00:23 +0000469 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000470
Werner Lemberg99e0c182007-05-29 07:00:23 +0000471 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
472 hinting script to CJK, since it works well with more scripts than
473 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
474 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000475
Werner Lemberg1c8980e2007-05-25 07:11:12 +00004762007-05-25 Werner Lemberg <wl@gnu.org>
477
478 * docs/CHANGES: Updated.
479
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00004802007-05-24 Werner Lemberg <wl@gnu.org>
481
482 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
483 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
484
4852007-05-24 Graham Asher <graham.asher@btinternet.com>
486
487 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
488 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
489
David Turner0d0365e2007-05-22 09:53:44 +00004902007-05-22 David Turner <david@freetype.org>
491
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000492 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
493 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000494
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000495
496 Avoid heap blowup with very large .Z font files. This fixes
497 Savannah bug #19910.
498
499 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
500 `in_limit', `pad', `pad_bits', and `in_buff' members.
501 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
502 `buf_total' members.
503
504 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
505 only one argument.
506 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000507
5082007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000509
510 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
511 (ps_dimension_set_mask_bits): Remove `const'.
512
David Turner0d0365e2007-05-22 09:53:44 +00005132007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000514
515 * src/sfnt/ttmtx.c (tt_face_get_metrics)
516 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
517
Werner Lembergb826fa72007-05-19 07:18:48 +00005182007-05-19 Derek Clegg <dclegg@apple.com>
519
520 Savannah patch #5929.
521
522 * include/freetype/tttables.h, src/base/ftobjcs.c
523 (FT_Get_CMap_Format): New function.
524
525 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
526 `format' member.
527 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
528 cmap_info->format.
529
Werner Lemberg6f99c882007-05-19 07:01:49 +00005302007-05-19 Werner Lemberg <wl@gnu.org>
531
532 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
533 before handling subglyphs so that it can be reinitialized each time.
534 This fixes Savannah bug #19859.
535
Werner Lemberg95bc9d32007-05-16 15:19:42 +00005362007-05-16 Werner Lemberg <wl@gnu.org>
537
538 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
539 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
540 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
541 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
542 tt_face_get_metrics): Fix type-punning issues.
543
David Turner0a24bd22007-05-15 10:54:10 +00005442007-05-15 David Turner <david@freetype.org>
545
546 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000547 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
548 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000549 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000550 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000551
Werner Lemberg607dec72007-05-15 06:49:37 +00005522007-05-15 Graham Asher <graham.asher@btinternet.com>
553
554 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
555 variable.
556 * src/autofit/afloader.c (af_loader_load_g): Ditto.
557
558 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
559 (open_face_from_buffer): Initialize `stream'.
560 (FT_Request_Metrics): Remove unused variable.
561 Remove redundant `break' statements.
562 (FT_Get_Track_Kerning): Remove unused variable.
563
564 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
565 afm_parse_kern_data): Remove redundant
566 `break' statements.
567 (afm_parser_parse): Ditto.
568 Don't use uninitialized variables.
569
570 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
571 Use `|' operator instead of `^' to set it.
572 Update all users.
573
574 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
575 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
576
577 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
578 comparison.
579 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
580 (TT_Load_Glyph): Remove unused variable.
581
Werner Lemberg8d463a52007-05-13 16:01:55 +00005822007-05-13 Derek Clegg <dclegg@apple.com>
583
584 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
585 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
586
David Turner711cf842007-05-11 14:36:24 +00005872007-05-11 David Turner <david@freetype.org>
588
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000589 * src/cache/ftbasic.c, include/freetype/ftcache.h
590 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
591 functions that allow us to look up glyphs using an FTC_Scaler object
592 to specify the size, making it possible to use fractional pixel
593 sizes.
594
595 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
596 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000597
Werner Lemberg94be20e2007-05-09 20:02:55 +00005982007-05-09 Graham Asher <graham.asher@btinternet.com>
599
600 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
601 (af_latin_metrics_scale_dim): Fix compiler warnings.
602
Werner Lemberg41271032007-05-06 04:51:48 +00006032007-05-06 Werner Lemberg <wl@gnu.org>
604
605 * builds/win32/visualce/freetype.sln: Removed, as requested by
606 Vincent.
607
Werner Lembergdf49e692007-05-04 06:30:05 +00006082007-05-04 Vincent RICHOMME <richom.v@free.fr>
609
610 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
611 PC targets.
612
613 * docs/CHANGES: Document them.
614
6152007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000616
617 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
618 mmap (which might happen on some RTOS). From Savannah patch #5909.
619
Werner Lemberg106eaf12007-05-03 07:07:47 +00006202007-05-03 Werner Lemberg <wl@gnu.org>
621
622 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
623 * include/freetype/freetype.h (FT_Set_Char_Size): Update
624 documentation.
625
Werner Lemberg1b5267d2007-04-28 21:06:15 +00006262007-04-28 Victor Stinner <victor.stinner@inl.fr>
627
628 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
629 `cmap'.
630
Werner Lembergcc712a22007-04-27 17:16:50 +00006312007-04-27 Werner Lemberg <wl@gnu.org>
632
633 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
634 number of points in contours. Problem reported by Victor Stinner
635 <victor.stinner@haypocalc.com>.
636 (TT_Process_Simple_Glyph): Synchronize variable types.
637
Werner Lemberg45bb18f2007-04-26 06:26:35 +00006382007-04-26 Werner Lemberg <wl@gnu.org>
639
640 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
641 zero in case of error. This fixes Savannah bug #19689.
642
David Turnera8b45e62007-05-11 14:10:30 +00006432007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
644
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000645 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
646 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000647
Werner Lembergfcc1f472007-04-10 11:51:50 +00006482007-04-10 Martin Horak <horakm@centrum.cz>
649
650 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
651 Ignore `hhea' table. This fixes Savannah bug #19261.
652
Werner Lemberg14bf82e2007-04-10 04:09:49 +00006532007-04-09 Werner Lemberg <wl@gnu.org>
654
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000655
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000656 * Version 2.3.4 released.
657 =========================
658
659
660 Tag sources with `VER-2-3-4'.
661
662 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
663 version number to 2.3.4.
664
665 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
666 builds/win32/visualc/freetype.dsp,
667 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
668
669 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
670
671 * builds/unix/configure.raw (version_info): Set to 9:15:3.
672
Werner Lembergf4a52a62007-04-09 08:40:11 +00006732007-04-09 Martin Horak <horakm@centrum.cz>
674
675 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
676 memory stream to avoid a crash with the incremental memory
677 interface (Savannah bug #19260).
678
David Turner1dcb4442007-04-06 08:19:04 +00006792007-04-06 David Turner <david@freetype.org>
680
Werner Lembergc81cf612007-04-06 09:28:23 +0000681 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
682 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000683
Werner Lemberg9f83e052007-04-05 02:28:23 +00006842007-04-04 Werner Lemberg <wl@gnu.org>
685
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000686
Werner Lemberg9f83e052007-04-05 02:28:23 +0000687 * Version 2.3.3 released.
688 =========================
689
690
691 Tag sources with `VER-2-3-3'.
692
693 * docs/CHANGES: Mention CVE-2007-1351.
694
David Turner7338ec22007-04-03 14:30:34 +00006952007-04-03 David Turner <david@freetype.org>
696
697 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000698 if one of the resolution values is 0, treat it as if it were the
699 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000700
David Turnere6472c12007-04-02 13:13:54 +00007012007-04-02 David Turner <david@freetype.org>
702
Werner Lemberg94f12272007-04-03 07:19:53 +0000703 Add special code to detect `extra-light' fonts and do not snap their
704 stem widths too much to avoid bizarre hinting effects.
705
706 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
707 `extra_light' members.
708
709 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
710 them.
711 (af_latin_metrics_scale_dim): Set `extra_light'.
712 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000713
David Turner3f539692007-03-28 14:53:40 +00007142007-03-28 David Turner <david@freetype.org>
715
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000716 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000717 padding.
718
Werner Lemberga08b2172007-03-28 07:17:17 +00007192007-03-28 Werner Lemberg <wl@gnu.org>
720
721 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
722 gracefully.
723 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000724 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000725 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
726 number of code points in Unicode.
727
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000728 * builds/win32/visualc/index.html,
729 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000730 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000731 s/232/233/.
732
733 * docs/CHANGES: Mention ftdiff.
734
David Turner3b242d32007-03-26 12:03:04 +00007352007-03-26 David Turner <david@freetype.org>
736
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000737 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
738 corresponding code.
739 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000740
Werner Lemberga08b2172007-03-28 07:17:17 +0000741 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000742 computations in order to ignore single-point contours. These are
743 never rasterized and correspond in certain fonts to mark-attach
744 points that are very far from the glyph's real outline, ruining the
745 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000746
Werner Lemberga08b2172007-03-28 07:17:17 +0000747 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000748 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000749 Otherwise code that uses them will most certainly ruin the fixed
750 advance property.
David Turner23553d62007-03-26 13:37:17 +0000751
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000752 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
753 documentation and bump version number to 2.3.3.
754
755 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
756
757 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000758
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00007592007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
760
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000761 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
762 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000763 * builds/vms/ftconfig.h: Ditto.
764 * include/freetype/config/ftconfig.h: Ditto.
765
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00007662007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
767
Werner Lemberg14ffe092007-03-22 06:12:43 +0000768 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
769 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000770 proposed by Sean McBride:
771 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
772
7732007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
774
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000775 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
776 setjmp, proposed by Sean McBride:
777 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
778
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00007792007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
780
Werner Lembergc9f6c662007-03-21 13:30:14 +0000781 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
782 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
783 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000784
David Turner74c34eb2007-03-18 07:19:31 +00007852007-03-18 David Turner <david@freetype.org>
786
Werner Lembergc9f6c662007-03-21 13:30:14 +0000787 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
788 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000789
Werner Lembergc9f6c662007-03-21 13:30:14 +0000790 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000791
David Turner89020d92007-03-17 17:48:57 +00007922007-03-17 David Turner <david@freetype.org>
793
Werner Lembergc9f6c662007-03-21 13:30:14 +0000794 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
795 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000796
Werner Lemberg25d592a2007-03-09 07:59:35 +00007972007-03-09 Werner Lemberg <wl@gnu.org>
798
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000799
Werner Lemberg25d592a2007-03-09 07:59:35 +0000800 * Version 2.3.2 released.
801 =========================
802
803
804 Tag sources with `VER-2-3-2'.
805
806 * builds/win32/visualc/index.html,
807 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000808 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000809 s/231/232/.
810
David Turner3a51afa2007-03-08 10:50:38 +00008112007-03-08 David Turner <david@freetype.org>
812
Werner Lemberg25d592a2007-03-09 07:59:35 +0000813 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000814
Werner Lemberg25d592a2007-03-09 07:59:35 +0000815 * builds/unix/configure.raw (version_info): Set to 9:13:3.
816
817 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
818
819 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000820
Werner Lemberg1e259de2007-03-08 15:39:21 +0000821 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
822 function to work properly, over-writing user-provided buffers in
823 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000824
David Turner121cad52007-03-08 16:43:50 +0000825
Werner Lemberg3d92f082007-03-06 11:59:24 +00008262007-03-05 Werner Lemberg <wl@gnu.org>
827
828 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
829 macro for `strstr'.
830
831 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
832 `trick_names', as suggested by Ivan Nincic.
833
David Turner085bc6e2007-03-05 17:40:03 +00008342007-03-05 David Turner <david@freetype.org>
835
Werner Lembergd112cf02007-03-06 12:06:56 +0000836 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
837 case FT_Init_FreeType fails for some reason. Problem reported by
838 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000839
Werner Lembergd112cf02007-03-06 12:06:56 +0000840 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
841 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
842 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
843 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000844
Werner Lembergd112cf02007-03-06 12:06:56 +0000845 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
846 signed values, not unsigned ones. Problem reported by Johannes
847 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000848
David Turner601aefe2007-02-21 16:47:49 +00008492007-02-21 David Turner <david@freetype.org>
850
Werner Lembergde5e6862007-02-25 21:06:43 +0000851 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
852 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000853
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00008542007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
855
856 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
857 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
858 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
859
Werner Lemberga0915172007-02-16 08:12:50 +00008602007-02-16 Werner Lemberg <wl@gnu.org>
861
862 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
863 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
864
David Turner2c4500e2007-02-14 15:08:47 +00008652007-02-14 David Turner <david@freetype.org>
866
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000867 It seems that the following changes fix most of the known
868 interpreter problems with my fonts, but more testing is needed,
869 though.
870
871 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
872 (TT_MulFix14): Rewrite.
873 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
874 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000875
Werner Lembergc6a14082007-02-12 22:08:15 +00008762007-02-12 Werner Lemberg <wl@gnu.org>
877
878 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
879 warnings.
880
881 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
882 (bdf_interpret_style): Ditto.
883
David Turnerc0f9c4a2007-02-12 14:55:03 +00008842007-02-12 David Turner <david@freetype.org>
885
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000886 Simplify projection and dual-projection code interface.
887
Werner Lemberg406d25f2007-02-12 22:01:18 +0000888 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
889 FT_Vector' as argument type.
890 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
891 Updated.
892 (CUR_fast_project, CUR_fast_dualproj): New macros.
893 (Project, Dual_Project, Project_x, Project_y): Updated.
894 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
895 macros.
896
897
898 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
899 adjustments for the non-light auto-hinted modes. Gets rid of
900 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000901
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000902 * src/autofit/aflatin.c (af_latin_hints_link_segments,
903 af_latin_hints_compute_edges): Slight optimization of the segment
904 linker and better handling of serif segments to get rid of broken
905 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000906
David Turnerc0f9c4a2007-02-12 14:55:03 +0000907
Werner Lemberg442bfb82007-02-12 21:44:10 +0000908 Introduce new string functions and the corresponding macros to get
909 rid of various uses of strcpy and other `evil' functions, as well as
910 to simplify a few things.
911
912 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
913 ft_mem_strcpyn): New declarations.
914 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
915 macros.
916 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
917 functions.
918
919 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
920 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
921 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
922 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
923 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
924 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
925 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
926 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000927
Werner Lemberg406d25f2007-02-12 22:01:18 +0000928 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
929
Werner Lemberg582067d2007-02-11 15:03:05 +00009302007-02-11 Werner Lemberg <wl@gnu.org>
931
932 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
933 non-spacing glyphs.
934
Werner Lemberg8f474532007-02-07 08:31:01 +00009352007-02-07 Tom Parker <palfrey@tevp.net>
936
937 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
938 pointer.
939
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009402007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
941
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000942 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
943 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000944 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000945 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
946 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
947 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
948 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000949
950 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
951 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000952 * builds/mac/ftmac.c: Ditto.
953
9542007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
955
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000956 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000957 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000958 #include <ftmac.c>.
959
9602007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
961
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000962 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
963 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
964 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
965 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
966 FT_GetFilePath_From_Mac_ATS_Name.
967 * builds/mac/ftmac.c: Ditto.
968
9692007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
970
Werner Lembergdcbb7082007-02-08 08:54:09 +0000971 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000972 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
973 for passing to FT_New_Face_From_FSSpec.
974
9752007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
976
Werner Lembergdcbb7082007-02-08 08:54:09 +0000977 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000978 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000979
980 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
981 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000982 * builds/mac/ftmac.c (OS_INLINE): Ditto.
983
Werner Lemberg313d7772007-02-01 08:10:45 +00009842007-02-01 Werner Lemberg <wl@gnu.org>
985
986 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
987 Explain why applications shouldn't use it. Found by Alexei.
988
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009892007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000990
991 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
992 message.
993
994 * src/gxvalid/gxvmort1.c
995 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
996 message.
997
Werner Lemberg53935932007-01-31 08:53:02 +00009982007-01-31 Werner Lemberg <wl@gnu.org>
999
1000
1001 * Version 2.3.1 released.
1002 =========================
1003
1004
1005 Tag sources with `VER-2-3-1-FINAL'.
1006
1007 * builds/win32/visualc/freetype.dsp,
1008 builds/win32/visualc/freetype.vcproj: s/230/231/.
1009 * builds/win32/visualc/index.html: s/221/231/.
1010
1011 * vms_make.com: Add `ftgasp'.
1012
David Turnera7ee6082007-01-30 10:33:53 +000010132007-01-30 David Turner <david@freetype.org>
1014
Werner Lemberg53935932007-01-31 08:53:02 +00001015 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +00001016
Werner Lemberg53935932007-01-31 08:53:02 +00001017 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +00001018
Werner Lemberg25d592a2007-03-09 07:59:35 +00001019 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +00001020 s/2.3.0/2.3.1/.
1021
1022 * builds/unix/configure.raw (version_info): Set to 9:12:3.
1023
1024
1025 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
1026 (af_loader_load_g): Disable the warper (i.e., the light hinting
1027 improvements) to make a 2.3.1 bugfix release before introducing a
1028 new feature. This should give us more time to tune and improve the
1029 warper for the next release.
1030
1031 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +00001032
David Turnerd91eebd2007-01-26 15:05:41 +000010332007-01-25 David Turner <david@freetype.org>
1034
Werner Lembergbf241762007-01-26 16:08:49 +00001035 For light auto-hinting, improve glyph advance widths and resurrect
1036 normal/full hinting to its normal quality.
1037
1038 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
1039 and `xmax_delta'.
1040 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
1041 and `xmax_delta'.
1042
1043 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
1044 preprocessor conditional with if-clause, handling both light and
1045 normal mode.
1046
1047 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
1048 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00001049
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000010502007-01-25 Werner Lemberg <wl@gnu.org>
1051
1052 * docs/release: Updated -- Savannah uses a new uploading scheme.
1053
David Turnera42567b2007-01-25 12:23:37 +000010542007-01-25 David Turner <david@freetype.org>
1055
Werner Lembergd7855662007-01-25 13:53:56 +00001056 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00001057
Werner Lembergd7855662007-01-25 13:53:56 +00001058 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1059 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
1060 functions.
David Turnera42567b2007-01-25 12:23:37 +00001061
Werner Lembergd7855662007-01-25 13:53:56 +00001062 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00001063
Werner Lembergb1be9e82007-01-25 11:50:00 +000010642007-01-25 Werner Lemberg <wl@gnu.org>
1065
1066 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00001067 correctly in a sanity check. Since this function is only used to
1068 load local and global functions, any charstring that called the last
1069 local/global function would fail otherwise. This fixes Savannah bug
1070 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00001071
1072 * docs/CHANGES: Document it.
1073
David Turnerb6de8d12007-01-23 15:51:50 +000010742007-01-23 David Turner <david@freetype.org>
1075
Werner Lembergb1be9e82007-01-25 11:50:00 +00001076 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1077 prevented compilation when disabling both the unpatented and the
1078 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00001079
Werner Lembergb1be9e82007-01-25 11:50:00 +00001080
1081 Fix and enable the warper to improve `light' hinting mode. This is
1082 not necessarily a final version, but it seems to work well.
1083
1084 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1085 Disable code.
1086 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1087 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1088
1089 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1090 (af_warper_compute_line_best): Fix array size of `scores'.
1091 (af_warper_compute): Better handling of border cases.
1092 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1093 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00001094
Werner Lemberg011d1112007-01-21 09:36:00 +000010952007-01-21 Werner Lemberg <wl@gnu.org>
1096
Werner Lemberg42b63b22007-01-21 21:01:33 +00001097 * ChangeLog: Split off older entries into...
1098 * ChangeLog.22: This new file.
1099
11002007-01-21 Werner Lemberg <wl@gnu.org>
1101
Werner Lemberg555258f2007-01-21 09:46:37 +00001102 * docs/CHANGES: Document SHZ fix.
1103
11042007-01-21 George Williams <gww@silcom.com>
1105
1106 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1107 points.
1108
11092007-01-21 Werner Lemberg <wl@gnu.org>
1110
Werner Lemberg011d1112007-01-21 09:36:00 +00001111 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1112 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1113
Werner Lemberg87a5a432007-01-17 12:44:39 +000011142007-01-17 Werner Lemberg <wl@gnu.org>
1115
Werner Lembergb8003292007-01-17 12:56:25 +00001116
1117 * Version 2.3.0 released.
1118 =========================
1119
1120
1121 Tag sources with `VER-2-3-0-FINAL'.
1122
11232007-01-17 Werner Lemberg <wl@gnu.org>
1124
Werner Lemberg87a5a432007-01-17 12:44:39 +00001125 * docs/release: Updated.
1126
David Turner22122722007-01-16 20:06:44 +000011272007-01-16 David Turner <david@freetype.org>
1128
Werner Lemberg87a5a432007-01-17 12:44:39 +00001129 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1130 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1131 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1132 warnings.
David Turner22122722007-01-16 20:06:44 +00001133
Werner Lemberg267e1d72007-01-15 07:48:09 +000011342007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1135
1136 * builds/amiga/makefile, builds/amiga/makefile.os4,
1137 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1138
1139 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1140
Werner Lemberg8c4120d2007-01-15 06:42:40 +000011412007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1142
1143 Fix various compiler warnings.
1144
1145 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1146 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1147 s/index/strike_index/.
1148 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1149
1150 * src/gxvalid/gxvmorx5.c
1151 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1152
1153 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1154 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1155 uninitialized variables.
1156
Werner Lemberg6164a9d2007-01-13 23:01:36 +000011572007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1158
1159 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1160
Werner Lemberg281c1482007-01-13 22:50:51 +000011612007-01-13 Werner Lemberg <wl@gnu.org>
1162
1163 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1164 versions up to 0x3FF without complaining.
1165
Werner Lembergac250b22007-01-13 14:01:36 +000011662007-01-13 Derek Clegg <dclegg@apple.com>
1167
1168 Add FT_Get_PS_Font_Info interface to CFF driver.
1169
1170 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1171 (CFF_FontRec): Add `font_info' field.
1172
1173 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1174 (cff_font_done): Free font->font_info if necessary.
1175
1176 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1177 (cff_service_ps_info): Register cff_ps_get_font_info.
1178
Werner Lemberg23df31a2007-01-13 08:45:00 +000011792007-01-13 Werner Lemberg <wl@gnu.org>
1180
1181 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1182 with C++ compiler.
1183
1184 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1185 af_glyph_hints_dump_edges): Ditto.
1186
1187 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1188 `modules.cfg').
1189
1190 * src/sfnt/ttsbit0.h: Remove.
1191
1192 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1193
Werner Lemberg27cf9de2007-01-13 07:34:23 +000011942007-01-12 David Turner <david@freetype.org>
1195
1196 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1197 bug in the bitmap emboldener if the pitch of the source bitmap is
1198 much larger than its width.
1199
1200 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1201 compilation warning.
1202
Werner Lemberg6d96d312007-01-12 10:30:19 +000012032007-01-12 Werner Lemberg <wl@gnu.org>
1204
1205 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1206 `automake' CVS module from sources.redhat.com.
1207
Werner Lemberg17432b52007-01-12 09:28:44 +000012082007-01-11 Werner Lemberg <wl@gnu.org>
1209
1210 * src/type1/t1load.c (is_space): Removed.
1211 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1212 (parse_charstrings): Use IS_PS_TOKEN.
1213
1214
1215 * autogen.sh: Avoid bash specific syntax.
1216
David Turner038ace22007-01-11 15:00:59 +000012172007-01-11 David Turner <david@freetype.org>
1218
Werner Lemberg17432b52007-01-12 09:28:44 +00001219 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001220
Werner Lemberg17432b52007-01-12 09:28:44 +00001221 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001222
Werner Lemberg17432b52007-01-12 09:28:44 +00001223 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1224 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001225 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001226
Werner Lemberg17432b52007-01-12 09:28:44 +00001227 * autogen.sh: Small fix to get it working on Mac OS X properly:
1228 The issue is that GNU libtool is called `glibtool' on this platform,
1229 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001230
David Turner2628ea92007-01-10 13:15:56 +000012312007-01-10 David Turner <david@freetype.org>
1232
Werner Lemberg17432b52007-01-12 09:28:44 +00001233 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1234 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001235
Werner Lemberg17432b52007-01-12 09:28:44 +00001236 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1237 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1238 version number to 2.3.0.
1239
1240 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1241 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001242
1243 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001244 include/freetype/ftlcdfil.h: Update reference documentation with
1245 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001246
Werner Lemberg17432b52007-01-12 09:28:44 +00001247 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1248 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001249
Werner Lembergbf02d392007-01-10 07:07:37 +000012502007-01-10 Derek Clegg <dclegg@apple.com>
1251
1252 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1253 values.
1254
David Turnerf48b60e2007-01-08 15:15:32 +000012552007-01-08 David Turner <david@freetype.org>
1256
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001257 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001258
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001259 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1260 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001261 corresponding to a given character pixel size.
1262
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001263 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1264 `gasp' table, in order to avoid potential problems with later
1265 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001266
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001267 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1268 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001269
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001270 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1271 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1272 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1273 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001274
Werner Lemberge6b6f372007-01-07 00:06:47 +000012752007-01-07 Werner Lemberg <wl@gnu.org>
1276
Werner Lembergb8004d22007-01-07 09:13:38 +00001277 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1278 Type 11 fonts.
1279 Scan for `/sfnts' token.
1280
12812007-01-07 Werner Lemberg <wl@gnu.org>
1282
1283 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001284
Werner Lembergbe5f7972007-01-06 07:51:48 +000012852007-01-06 Werner Lemberg <wl@gnu.org>
1286
1287 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1288 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1289
David Turnera8cf42b2007-01-04 16:46:46 +000012902007-01-04 David Turner <david@freetype.org>
1291
Werner Lembergf6294392007-01-06 07:47:45 +00001292 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1293 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001294
Werner Lembergf6294392007-01-06 07:47:45 +00001295
1296 Do not allocate interpreter-specific tables in memory if we are not
1297 going to load glyphs with the bytecode interpreter anyway.
1298
1299 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1300 only if glyph is hinted.
1301 Updated.
1302 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1303 and `cvs_ready'.
1304 Add `tt_size_ready_bytecode' declaration.
1305 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1306 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1307 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1308 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1309 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001310
David Turner91a34022007-01-05 14:47:08 +00001311
Werner Lembergf6294392007-01-06 07:47:45 +00001312 Don't extract the metrics table from the SFNT font file. Instead,
1313 reparse it on each glyph load. The runtime difference is not
1314 noticeable, and it can save a lot of heap memory when memory-mapped
1315 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001316
Werner Lembergf6294392007-01-06 07:47:45 +00001317 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1318 `horz_metrics_offset' and `vert_metrics_ofset'.
1319 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1320 Updated.
1321
1322
1323 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1324
1325
1326 Do not load the CFF index offsets into memory, since this wastes a
1327 *lot* of heap memory with large Asian CFF fonts. There is no
1328 significant performance loss.
1329
1330 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1331 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1332 `data_size'.
1333 (CFF_CharsetRec): Add field `num_glyphs'.
1334
1335 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1336 cff_charset_cid_to_gindex): New functions.
1337 (cff_new_index): Renamed to...
1338 (cff_index_init): This. Update all callers.
1339 Updated -- some code has been moved to `cff_index_load_offsets'.
1340 (cff_done_index): Renamed to...
1341 (cff_index_done): This. Update all callers.
1342 (cff_index_get_pointers, cff_index_access_element): Updated to use
1343 stream offsets.
1344 (cff_charset_compute_cids): Set `num_glyphs' field.
1345 (cff_encoding_load): Updated.
1346
1347 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001348
13492007-01-04 David Turner <david@freetype.org>
1350
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001351 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1352 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001353
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001354 * README.CVS: Add common problem description and solution
1355 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001356
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001357 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001358
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001359 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001360
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001361 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001362
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001363 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1364 (TWorker): This.
1365 Remove `count_table' and `memory'.
1366 Make `grays' a pointer.
1367 (TRaster): New structure.
1368 (count_table): New static array.
1369 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1370 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1371 ft_black_set_mode, ft_black_render): Updated.
1372 (ft_black_init): Don't initialize `count_table'.
1373 (ft_black_reset): Use the render pool. This saves about 6KB of
1374 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001375
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001376 * src/smooth/ftgrays.c (TRaster): Replaced with...
1377 (TWorker): This.
1378 Remove `memory'.
1379 (TRaster): New structure.
1380
1381 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1382 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1383 gray_render_span, gray_raster_render): Updated.
1384 (gray_raster_reset): Use the render pool. This saves about 6KB of
1385 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001386
David Turner8a6c44e2007-01-04 17:03:11 +00001387 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1388 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001389 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1390 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1391 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001392
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001393 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1394 Remove a typo that results in no hinting and a memory leak with some
1395 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001396
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001397 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001398 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001399 CFF_Faces in it. We need to close all faces before destroying the
1400 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001401
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000014022007-01-02 Werner Lemberg <wl@gnu.org>
1403
1404 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1405 Remove compiler warning.
1406
David Turner9207e002007-01-02 16:58:13 +000014072007-01-02 David Turner <david@freetype.org>
1408
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001409 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001410
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000014112006-12-31 Masatake YAMATO <jet@gyve.org>
1412
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001413 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1414 function.
1415 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001416 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001417 `gxv_kern_subtable_fmt0_pairs_validate'.
1418
David Turner115b4422006-12-22 11:37:05 +000014192006-12-22 David Turner <david@freetype.org>
1420
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001421 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1422 warnings.
David Turner115b4422006-12-22 11:37:05 +00001423
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001424 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1425 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001426
Werner Lemberg4755bf72006-12-16 08:58:44 +000014272006-12-16 Anders Kaseorg <anders@kaseorg.com>
1428
1429 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1430 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1431
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000014322006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1433
Werner Lemberg9b774e22007-01-16 06:11:27 +00001434 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001435 sync with the modification by Jens Claudius on 2006-08-22; cf.
1436 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 +00001437
14382006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1439
1440 * src/base/ftmac.c: Specialized for Mac OS X only.
1441 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1442 * builds/unix/configure.raw: Ditto. When explicit switches for
1443 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1444 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1445
14462006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1447
1448 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1449 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1450 instead of src/base/ftmac.c
1451 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1452 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1453 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1454 that cannot be built at present.
1455
14562006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1457
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001458 * src/base/ftobjs.c: Improvement of resource fork handler for
1459 POSIX, cf.
1460 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001461 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1462 format or .dfont, to simulate the face index number counted by ftmac.c.
1463 (IsMacResource): Return the number of scalable faces correctly.
1464
Werner Lembergec5b4502006-12-10 07:51:38 +000014652006-12-10 Werner Lemberg <wl@gnu.org>
1466
1467 * builds/toplevel.mk (version): Protect against `distclean' target.
1468
Werner Lembergb26b3142006-12-09 20:01:43 +000014692006-12-09 Werner Lemberg <wl@gnu.org>
1470
1471 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1472 or `type'.
1473
1474 * builds/freetype.mk (version): Extracted from freetype.h, using
1475 GNU make's built-in string functions.
1476 (refdoc): Use $(version) instead of static version number.
1477
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000014782006-12-08 Werner Lemberg <wl@gnu.org>
1479
1480 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1481
Werner Lemberg15c29502006-12-09 07:29:54 +000014822006-12-08 Vladimir Volovich <vvv@vsu.ru>
1483
1484 * src/tools/apinames (State): Remove final comma in structure -- xlc
1485 v5 under AIX 4.3 doesn't like this.
1486
David Turnerdbf3b432006-12-07 21:18:09 +000014872006-12-07 David Turner <david@freetype.org>
1488
Werner Lemberg256a3512006-12-08 06:49:33 +00001489 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1490 to the spacing of auto-fitted glyphs. This only impacts rare
1491 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001492
Werner Lemberg11171312006-12-03 09:43:40 +000014932006-12-03 Werner Lemberg <wl@gnu.org>
1494
1495 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1496
Werner Lemberg960ba592006-12-01 08:20:47 +000014972006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001498
Werner Lemberg960ba592006-12-01 08:20:47 +00001499 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1500 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1501 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001502
David Turner80658e52006-11-28 08:09:20 +00001503
Werner Lemberg960ba592006-12-01 08:20:47 +00001504 * include/freetype/ftxf86.h: Fix and extend comment so that it
1505 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001506
Werner Lemberg960ba592006-12-01 08:20:47 +00001507 * include/freetype/ftchapters.h: Add `font_format' section.
1508
1509
1510 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1511 to TOC in index page.
1512
15132006-11-28 David Turner <david@freetype.org>
1514
1515 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1516 trying to render into a zero-width/height bitmap, not an error code.
1517
1518 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1519
1520 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1521 ones instead.
1522
1523 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1524 variable.
David Turner80658e52006-11-28 08:09:20 +00001525
Werner Lemberg8636c292006-11-26 22:28:13 +000015262006-11-26 Pierre Hanser <hanser@club-internet.fr>
1527
1528 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1529
Werner Lemberg960ba592006-12-01 08:20:47 +000015302006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001531
Werner Lemberg960ba592006-12-01 08:20:47 +00001532 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1533 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1534 Add stubs to link the `ftgrid' test program when debugging is
1535 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001536
Werner Lemberg960ba592006-12-01 08:20:47 +000015372006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001538
1539 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001540 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1541
1542 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1543 Emit more sensible information.
1544
1545 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1546
1547 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1548 rounding of blue values.
1549 (af_latin_hints_compute_segments): Hint segment heights.
1550 (af_latin_hints_link_segments): Reduce `len_score' value.
1551 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1552 value and use `height' member for comparisons.
1553 (af_latin_hint_edges): Extend logging message.
1554 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001555
Werner Lemberg91959bf2006-11-22 10:36:55 +000015562006-11-22 Werner Lemberg <wl@gnu.org>
1557
1558 Fix Savannah bug #15553.
1559
1560 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1561 program after a change from mono to grayscaling (and vice versa).
1562 Use correct constant for comparison to get `exec->grayscale'.
1563
Werner Lemberg913a3652006-11-19 09:19:17 +000015642006-11-18 Werner Lemberg <wl@gnu.org>
1565
1566 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001567 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001568 This patch fixes Savannah bug #18301.
1569
1570 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1571 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1572 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1573 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1574 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1575 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1576 (FNT_Load_Glyph): Check validity of `glyph_index'.
1577
David Turner7bab6ae2006-11-13 11:25:06 +000015782006-11-13 David Turner <david@freetype.org>
1579
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001580 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1581 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001582
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001583 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1584 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1585 when building the library to change the default LCD filter to be
1586 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001587
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001588 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001589
David Turner8765c712006-11-10 16:49:42 +000015902006-11-10 David Turner <david@freetype.org>
1591
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001592 * src/smooth/ftsmooth.c: API change for the LCD
1593 filter. The FT_LcdFilter value is an enumeration describing which
1594 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1595 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1596 algorithm which produces strong color fringes for everything
1597 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001598
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001599 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1600 second parameter to an enum type.
1601
1602 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1603 (_ft_lcd_filter): Rename to...
1604 (_ft_lcd_filter_fir): This.
1605 Update parameters.
1606 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1607 (FT_Library_Set_LcdFilter): Update parameters.
1608 Handle new filter modes.
1609
1610 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1611 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1612 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1613 callback and update other fields.
1614
1615 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1616 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1617 Other minor improvements.
1618
1619 * src/autofit/aflatin.c: Various tiny improvements that drastically
1620 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1621 (af_latin_hints_compute_edges): Fix typo.
1622 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001623
David Turner4e9cc3c2006-11-09 16:31:52 +000016242006-11-09 David Turner <david@freetype.org>
1625
Werner Lemberg49c77a82006-11-09 21:51:57 +00001626 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1627 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001628
Werner Lemberg5e430892006-11-07 09:35:03 +000016292006-11-07 Zhe Su <james.su@gmail.com>
1630
1631 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1632 also.
1633
Werner Lemberg111b5ae2006-11-03 09:40:12 +000016342006-11-03 Werner Lemberg <wl@gnu.org>
1635
1636 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1637
David Turner40604742006-11-02 16:37:35 +000016382006-11-02 David Turner <david@freetype.org>
1639
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001640 Add a few tweaks to better handle serif fonts.
1641 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001642
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001643 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1644 segments that are less than 1.5 pixels high. This gets rid of
1645 *many* corner cases with serifs.
1646 (af_latin_align_linked_edge): Add logging message.
1647 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1648 Add logging messages.
1649 Handle AF_EDGE_FLAG flag specially.
1650
1651 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1652 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1653
1654 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1655 Update external declarations.
1656 (af_corner_orientation, af_corner_is_flat): Replaced by...
1657
1658 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1659 ft_corner_is_flat): These declarations.
1660
1661 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1662 Comment out. Replaced by...
1663
1664 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1665 These functions. Update all callers.
1666 (FT_Add64) [!FT_LONG64]: Simplify.
1667
1668 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1669 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1670 production of garbage by missing lots of segments.
1671
1672 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1673
1674 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1675 [AF_DEBUG]: Set _af_debug_hints.
1676
1677
1678 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1679 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1680 and ft_corner_orientation.
1681
1682
1683 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001684
Werner Lemberge88c5262006-10-24 05:46:26 +000016852006-10-24 Werner Lemberg <wl@gnu.org>
1686
1687 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1688
1689 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1690 as argument.
1691
David Turnera1861392006-10-23 16:00:59 +000016922006-10-23 Zhe Su <zsu@novell.com>
1693
Werner Lemberg715e96e2006-10-24 05:28:45 +00001694 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1695 better deal with broken Asian fonts with strange glyphs, having
1696 self-intersections and other peculiarities. The used algorithm is
1697 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001698
David Turnere140f142006-10-23 08:56:57 +000016992006-10-23 David Turner <david@freetype.org>
1700
Werner Lemberg715e96e2006-10-24 05:28:45 +00001701 Speed up the CFF font loader. With some large CFF fonts,
1702 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001703
Werner Lemberg715e96e2006-10-24 05:28:45 +00001704 * src/cff/cffload.c (cff_get_offset): Removed.
1705 (cff_new_index): Inline functionality of `cff_get_offset'.
1706 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1707 (cff_charset_done): Call `cff_charset_free_cids'.
1708 (cff_charset_load): Call `cff_charset_compute_cids'.
1709 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1710
1711 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1712 with FT_NEXT_XXX.
1713
1714
1715 Speed up the Postscript hinter, with more than 100% speed increase
1716 on my machine.
1717
1718 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1719 psh_corner_orientation): New functions.
1720 (psh_glyph_compute_inflections): Merge loops for efficiency.
1721 Use `psh_corner_orientation'.
1722 (psh_glyph_init): Use `psh_corner_is_flat'.
1723 (psh_hint_table_find_strong_point): Renamed to...
1724 (psh_hint_table_find_strong_points): This.
1725 Rewrite, adding argument to handle all points at once.
1726 Update all callers.
1727 (PSH_MAX_STRONG_INTERNAL): New macro.
1728 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001729
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000017302006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1731
1732 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001733 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001734
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000017352006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1736
1737 * docs/INSTALL.CROSS: New document file for cross-building.
1738
1739 * builds/unix/configure.raw: Preliminary cross-building support.
1740 Find native C compiler and pass it by CC_BUILD, and
1741 find suffix for native executable and pass it by EXEEXT_BUILD.
1742 Also suffix for target executable is passed by EXEEXT.
1743
Werner Lembergb9e6d692006-10-15 08:58:40 +00001744 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1745 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001746 CC_BUILD and EXEEXT_BUILD.
1747
Werner Lembergb9e6d692006-10-15 08:58:40 +00001748 * builds/exports.mk (APINAMES_EXE): Change the extension for
1749 apinames from the suffix for target (E) to that for building host
1750 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001751
Werner Lemberg82a07e92006-10-12 06:20:44 +000017522006-10-12 Werner Lemberg <wl@gnu.org>
1753
1754 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1755 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1756 which reference those files.
1757
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000017582006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1759
Werner Lembergb9e6d692006-10-15 08:58:40 +00001760 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1761 embedded in freetype2.pc and freetype-config. Use it to record
1762 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001763
1764 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1765
1766 * builds/unix/freetype-config.in: Ditto.
1767
Werner Lemberg28e17d92006-10-11 17:27:47 +000017682006-10-11 Werner Lemberg <wl@gnu.org>
1769
1770 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1771 development.
1772
Jens Claudius336d2292006-10-03 08:53:37 +000017732006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1774
1775 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1776 argument to ft_setjmp.
1777
1778 * include/freetype/internal/ftvalid.h: Add comment that
1779 ft_validator_run must not be used.
1780
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017812006-10-01 Werner Lemberg <wl@gnu.org>
1782
1783 * src/base/ftbase.c: Undo change from 2006-09-30.
1784
1785 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1786
17872006-09-30 David Turner <david@freetype.org>
1788
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001789 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1790 s/unpatented_hinting/ignore_unpatented_hinter/.
1791 Update all callers.
1792
1793 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1794 auto-hinting shall be used or not.
1795
1796 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001797
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017982006-09-30 Werner Lemberg <wl@gnu.org>
1799
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001800 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1801 in use).
1802
1803 * src/base/ftbase.c: Include `ftlcdfil.c'.
1804
Werner Lemberg9b15ea32006-09-29 18:22:11 +000018052006-09-29 Werner Lemberg <wl@gnu.org>
1806
1807 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1808 overlapping segments. Bug reported by Stefan Koch.
1809
David Turnerad830712006-09-27 16:20:59 +000018102006-09-28 David Turner <david@freetype.org>
1811
Werner Lemberg2c002e12006-09-29 21:31:53 +00001812 Fix a bug in the automatic unpatented hinting support which prevents
1813 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001814
Werner Lemberg2c002e12006-09-29 21:31:53 +00001815 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1816 s/force_autohint/unpatented_hinting/. Update all callers.
1817
1818 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1819
1820 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001821
David Turner8a317cf2006-09-27 07:52:48 +000018222006-09-27 David Turner <david@freetype.org>
1823
Werner Lemberg2c002e12006-09-29 21:31:53 +00001824 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001825
David Turner8a317cf2006-09-27 07:52:48 +00001826
David Turnere140f142006-10-23 08:56:57 +00001827 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001828 In a default build, the function `FT_Library_SetLcdFilter' returns
1829 `FT_Err_Unimplemented_Feature'; you need to #define
1830 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1831 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001832
Werner Lemberg2c002e12006-09-29 21:31:53 +00001833 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001834
Werner Lemberg2c002e12006-09-29 21:31:53 +00001835 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1836 typedef.
1837 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1838 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001839
Werner Lemberg2c002e12006-09-29 21:31:53 +00001840 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1841 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001842
Werner Lemberg2c002e12006-09-29 21:31:53 +00001843 Handle subpixel rendering.
1844 Simplify function.
1845 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1846 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1847
1848 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1849 pointing to <freetype/ftlcdfil.h>.
1850
1851 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1852 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1853
1854 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001855
Werner Lemberge20df4a2006-09-27 06:29:21 +000018562006-09-26 David Bustin
1857
1858 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1859 correctly. Reported as Savannah bug #17843.
1860
David Turner6f8c6222006-09-26 15:42:44 +000018612006-09-26 David Turner <david@freetype.org>
1862
Werner Lemberg110246c2006-09-26 21:55:44 +00001863 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1864 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1865 horizontal and vertical hinting for the purpose of debugging the
1866 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001867
Werner Lemberg110246c2006-09-26 21:55:44 +00001868 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1869 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001870
Werner Lemberg110246c2006-09-26 21:55:44 +00001871 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1872
1873 * include/freetype/config/ftoption.h, devel/ftoption.h
1874 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1875 we want to compile LCD-optimized rendering code (à la ClearType) or
1876 not. The macro *must* be disabled in default builds of the library
1877 for patent reasons.
1878
1879 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1880 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1881 isn't defined at compile time. This only changes the content of the
1882 rendered glyph to match the one of normal gray-level rendering,
1883 hence clients should not need to be modified.
1884
1885 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001886
Werner Lemberg745ff2c2006-09-19 05:48:02 +000018872006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1888
1889 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1890 LWFN fails and both are available.
1891
David Turnerf3050052006-09-11 12:00:32 +000018922006-09-11 David Turner <david@freetype.org>
1893
Werner Lembergf9644552006-09-12 13:48:10 +00001894 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1895 report their English names through an Apple Roman
1896 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001897
Werner Lembergf9644552006-09-12 13:48:10 +00001898 If the font uses another name entry with language_id == English, it
1899 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001900
Werner Lembergf9644552006-09-12 13:48:10 +00001901 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1902 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001903
Werner Lemberg36d2eab2006-09-05 19:24:34 +000019042006-09-05 Werner Lemberg <wl@gnu.org>
1905
1906 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001907 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001908 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1909 `HAN NOM B.ttf').
1910
1911 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1912
David Turner772e55d2006-09-05 09:45:15 +000019132006-09-05 David Turner <david@freetype.org>
1914
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001915 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001916
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001917 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1918 (TRaster): Remove `count_ex' and `count_ey'.
1919 (gray_find_cell): Remove 2nd and 3rd argument.
1920 (gray_alloc_cell): Merged with `gray_find_cell'.
1921 (gray_record_cell): Simplify.
1922 (gray_set_cell): Rewrite.
1923 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1924 (gray_render_span): Don't use FT_MEM_SET for small values.
1925 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1926 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1927 bitmap scanline.
1928 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001929
David Turneraa557a92006-09-04 16:42:44 +000019302006-09-04 David Turner <david@freetype.org>
1931
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001932 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1933 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001934
Werner Lemberg2d8629b2006-09-03 06:18:45 +000019352006-09-03 Werner Lemberg <wl@gnu.org>
1936
1937 * devel/ftoption.h: Synchronize with
1938 include/freetype/config/ftoption.h.
1939
1940 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1941 variable declaration.
1942 (gray_convert_glyph): Fix compiler warnings.
1943
David Turner6d79f212006-09-01 14:09:35 +000019442006-09-01 David Turner <david@freetype.org>
1945
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001946 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1947 to recognize a few fonts that require the automatic unpatented
1948 loader.
David Turnerbd502952006-09-01 19:05:24 +00001949
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001950 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1951 rasterizer. The speed improvement is between 15% and 25%, depending
1952 on the font data.
1953
1954 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1955 (TCell): Redefine.
1956 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1957 (gray_init_cells): Updated.
1958 (gray_find_cell, gray_alloc_cell): New functions.
1959 (gray_record_cell): Rewritten to use `gray_find_cell' and
1960 `gray_alloc_cell'.
1961 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1962 QSORT_THRESHOLD):
1963 Removed.
1964 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1965 gray_dump_cells): Removed.
1966 (gray_sweep): Rewritten.
1967 (gray_convert_glyph): Rewrite code which used one of the sorting
1968 functions.
1969 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001970
Werner Lembergd898aed2006-08-29 09:50:34 +000019712006-08-29 Dr. Werner Fink <werner@suse.de>
1972
1973 * configure: Make it possible to handle configure options which
1974 have strings containing spaces.
1975
19762006-08-27 David Turner <david@freetype.org>
1977
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001978 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1979 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1980 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1981
1982 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1983 src/truetype/truetype.c, src/truetype/ttdriver.c,
1984 src/truetype/ttgload.c, src/truetype/ttgload.h,
1985 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1986 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1987 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1988
1989 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1990 member `force_autohint'.
1991
1992 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1993
1994 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1995 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001996
Jens Claudiusa787f452006-08-27 11:26:18 +000019972006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1998
1999 Fix miscellaneous compiler warnings.
2000
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002001 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
2002 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00002003
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002004 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
2005 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
2006 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00002007
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002008 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
2009 volatileness of argument to ft_longjmp. Spotted by Werner
2010 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00002011
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002012 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
2013 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00002014
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002015 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
2016 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00002017
Werner Lembergc4c35b72006-08-27 08:03:46 +000020182006-08-27 Werner Lemberg <wl@gnu.org>
2019
2020 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
2021 Reported by Jens.
2022
Jens Claudius088e44e2006-08-22 14:24:30 +000020232006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00002024
Jens Claudius088e44e2006-08-22 14:24:30 +00002025 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00002026 about addresses of volatile objects passed as function arguments as
2027 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00002028
Werner Lembergc4c35b72006-08-27 08:03:46 +00002029 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
2030 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002031
2032 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
2033 argument `table' a pointer to a volatile object.
2034
2035 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
2036 argument `table' a pointer to a volatile object.
2037
Jens Claudius2652bd52006-08-18 17:20:37 +000020382006-08-18 Jens Claudius <jens.claudius@yahoo.com>
2039
2040 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
2041 variable `_sfnt' as volatile since it must keep its value across
2042 a call to ft_setjmp.
2043 (gxv_validate): Same for local variables `memory' and `valid'.
2044 (classic_kern_validate): Same for local variables `memory',
2045 `ckern', and `valid'.
2046
2047 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
2048 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
2049 `jstf', and 'valid'.
2050
2051 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
2052 local variable `cmap'.
2053
David Turner9fbfc6a2006-08-16 09:11:31 +000020542006-08-16 David Turner <david@freetype.org>
2055
Werner Lemberg12342992006-08-19 11:18:09 +00002056 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
2057 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00002058
Werner Lemberg12342992006-08-19 11:18:09 +00002059 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
2060 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00002061
David Turner33f5f242006-08-16 16:50:55 +00002062
Werner Lemberg12342992006-08-19 11:18:09 +00002063 Improvements to native TrueType hinting. This is a first try,
2064 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
2065
2066 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
2067 `extra_points2'.
2068
2069 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
2070 `orus'.
2071
2072 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
2073 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
2074 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
2075 handle `extra_points2'.
2076
2077 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2078 Remove compiler warning.
2079 (cur_to_arg): Remove macro.
2080 (TT_Hint_Glyph): Updated.
2081 (TT_Process_Simple_Glyph): Handle `orus'.
2082
2083 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2084 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2085 (LOC_Ins_IUP): Renamed to...
2086 (IUP_WorkerRec): This.
2087 Add `orus' member.
2088 (Shift): Renamed to...
2089 (_iup_worker_shift): This.
2090 Updated.
2091 (Interp): Renamed to...
2092 (_iup_worker_interpolate): This.
2093 Updated to handle `orus'.
2094 (Ins_IUP): Updated.
2095
2096 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2097 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00002098
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000020992006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2100
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002101 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00002102 build ftvalid in ft2demos. This has been inadvertedly changed
2103 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002104
21052006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2106
Werner Lemberg12342992006-08-19 11:18:09 +00002107 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2108 Jens:
2109 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002110
Werner Lemberg12342992006-08-19 11:18:09 +00002111 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2112 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002113
2114 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2115
Jens Claudius9950adc2006-08-13 12:14:36 +000021162006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2117
Werner Lemberg12342992006-08-19 11:18:09 +00002118 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2119 T1_TOKEN_TYPE_KEY.
2120 (T1_FieldRec): Add `dict'.
2121 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2122 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2123 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002124
Werner Lemberg12342992006-08-19 11:18:09 +00002125 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2126 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002127
2128 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2129
2130 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002131 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2132 not T1_TOKEN_TYPE_ANY.
2133 (ps_parser_load_field): Make sure a token that should be a string or
2134 name is really a string or name.
2135 Avoid memory leak if a keyword has been already encountered and its
2136 value is overwritten.
2137 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2138 T1_FIELD_XXX.
2139 (parse_dict): Ignore keywords that occur in the wrong dictionary
2140 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002141
Werner Lemberg12342992006-08-19 11:18:09 +00002142 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2143 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002144
Werner Lemberg12342992006-08-19 11:18:09 +00002145 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2146 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002147
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000021482006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2149
2150 Move creation of field `buildchar' of T1_DecoderRec out of
2151 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2152 of it.
2153
2154 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2155 and `T1_Compute_Max_Advance'.
2156
2157 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2158 Remove field `face', add `len_buildchar'.
2159
2160 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2161 field `buildchar'.
2162
2163 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2164 finisher for T1_Decoder.
2165 (cid_slot_load_glyph): Do not ignore failure when initializing the
2166 T1_Decoder.
2167
2168 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2169 Updated.
2170 (t1_decoder_init): Remove initialization of fields `buildchar' and
2171 `len_buildchar'.
2172 (t1_decoder_done): Remove deallocation of field `buildchar'.
2173
2174 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2175 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2176 T1_Decoder.
2177 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2178 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2179 case of error.
2180
2181 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2182 `buildchar' of T1_FaceRec.
2183
2184 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2185 `buildchar' of T1_FaceRec.
2186
Werner Lemberg1a380e02006-07-14 18:28:08 +000021872006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2188
2189 * freetype2/include/freetype/internal/psaux.h: New macros
2190 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2191 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2192 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2193 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2194 (T1_DecoderRec): New fields `buildchar' and `face'.
2195 (IS_PS_TOKEN): New macro.
2196
2197 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2198 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2199
2200 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2201 `default_design_vector' and `num_default_design_vector'.
2202
2203 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2204 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2205 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2206
2207 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2208 `token' argument to be NULL if we want only to count the number of
2209 tokens.
2210 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2211 want to skip the array.
2212 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2213 want to skip the array.
2214
2215 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2216 support for (partially commented out) othersubrs 19-25, 27, and 28.
2217 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2218 (t1_decoder_done): Release new field `buildchar'.
2219
2220 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2221 functions.
2222 (t1_keywords): Register them.
2223 (t1_allocate_blend): Updated.
2224 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2225 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2226 (parse_dict): Remove `keyword_flags' argument.
2227 Use new macro IS_PS_TOKEN.
2228 Changed function so that later PostScript definitions override
2229 earlier ones.
2230 (t1_init_loader): Initialize new field `keywords_encountered'.
2231 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2232 `len_buildchar'.
2233 Remove `keywords_flags'.
2234
2235 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2236 `keywords_encountered'.
2237 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2238
2239 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2240 New entries for parsing /NDV, /CDV, and /DesignVector.
2241
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000022422006-07-07 Werner Lemberg <wl@gnu.org>
2243
2244 Add many checks to protect against malformed PCF files.
2245
2246 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2247 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2248
2249 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2250 data and check that tables don't overlap (using a simple
2251 bubblesort).
2252 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2253 New macros which give the size of data structures in the data
2254 stream.
2255 (pcf_get_properties): Use rough estimates to get array size limits.
2256 Assign `face->nprops' and `face->properties' earlier so that a call
2257 to PCF_Face_Done can do the clean-up in case of error.
2258 Protect against invalid string offsets.
2259 (pcf_get_metrics): Clean up code.
2260 Adjust tracing message levels.
2261 Use rough estimate to get array size limit.
2262 (pcf_get_bitmaps): Clean up code.
2263 Adjust tracing message levels.
2264 Use rough estimates to get offset limits.
2265 (pcf_get_encodings): Adjust tracing message level.
2266 (pcf_get_accel): Clean up code.
2267
Werner Lemberg8eb05252006-06-27 06:20:01 +000022682006-06-26 Werner Lemberg <wl@gnu.org>
2269
2270 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2271 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2272
Werner Lemberg24703f82006-06-26 19:12:51 +000022732006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2274
2275 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2276 (t1_decoder_parse_charstrings): Operator with
2277 opcode 15 pops its two arguments.
2278 Handle the case where the pops of an othersubr may be part of a
2279 subroutine.
2280 Handle unknown othersubrs gracefully: count their operands and let
2281 the following pop operators push the operands as the results onto
2282 the Type1 stack.
2283 Improve handling of setcurrentpoint opcode.
2284
Werner Lembergc011f4c2006-06-26 09:40:00 +000022852006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2286
2287 The Type 1 parser now skips over top-level procedures as required
2288 for a `Simplified Parser'. This makes the parser more robust as it
2289 doesn't poke around in PostScript code. Additionally, it makes the
2290 FontDirectory hackery in src/type1/t1load.c unnecessary.
2291
2292 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2293 (skip_literal_string): Add FT_Error as return value.
2294 Handle escapes better.
2295 (skip_string): Add FT_Error as return value.
2296 Don't set `parser->error' but return error code directly.
2297 (skip_procedure): New function.
2298 (ps_parser_skip_PS_token): Handle procedures.
2299 Update code.
2300 (ps_parser_to_token): Update code.
2301 (ps_parser_load_field_table): Handle bbox entries also.
2302
2303 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2304 Add commented-out code for synthetic fonts.
2305
Werner Lemberga2da05c2006-06-25 06:27:27 +000023062006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2307
2308 Fix two hinting bugs as reported in
2309 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2310
2311 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2312 `first_point' member.
2313
2314 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2315 `first_point'.
2316 (TT_Process_Composite_Glyph): Always untouch points.
2317
2318 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2319 `first_point' and `last_point' in case of composite glyphs.
2320 (Ins_IUP): Fix computation of `end_point'.
2321
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000023222006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2323
Werner Lembergef3d2c22006-06-25 06:07:14 +00002324 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2325 Mac. The original patch was written by David Sachitano and Lawrence
2326 Coopet, and modified by Sean McBride for MPW compatibility. Only
2327 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002328
Werner Lembergef3d2c22006-06-25 06:07:14 +00002329 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2330 Mac OS X platforms.
2331 (OS_INLINE): Undefine before definition.
2332 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2333 FontAssociation table in FOND resource.
2334 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2335 and fontSize at each entry of FontAssociation table in FOND
2336 resource.
2337 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2338 ffStylOff of FamilyRecord header of FOND resource, the header,
2339 fontSize, fontID at each entry of FontAssociation table, and
2340 StyleMapping table.
2341 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002342
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000023432006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2344
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002345 Public API of TrueTypeGX, OpenType, and classic kern table validator
2346 should return `FT_Err_Unimplemented_Feature' if validation service
2347 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002348 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002349 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2350
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002351 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2352 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2353 unavailable.
2354 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2355 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002356
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002357 * src/base/ftotval.c (FT_OpenType_Validate): Return
2358 FT_Err_Unimplemented_Feature if OpenType validation service is
2359 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002360
Werner Lembergb10e45a2006-06-08 07:32:56 +000023612006-06-08 Werner Lemberg <wl@gnu.org>
2362
2363 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2364 errors.
2365
David Turner5f1f7502006-06-07 05:11:50 +000023662006-06-07 David Turner <david@freetype.org>
2367
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002368 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2369 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2370 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002371
David Turner457b4a82006-06-06 08:14:14 +000023722006-06-06 David Turner <david@freetype.org>
2373
Werner Lemberg4836f952006-06-06 12:54:08 +00002374 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002375
Werner Lemberg4836f952006-06-06 12:54:08 +00002376 We change `ps_unicodes_init' so that it also takes a
2377 `free_glyph_name' callback to release the glyph names returned by
2378 `get_glyph_name'
2379
2380 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2381 Renamed to ...
2382 (PS_GetGlyphNameFunc): This.
2383 (PS_FreeGlyphNameFunc): New typedef.
2384 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2385
2386 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2387 argument.
2388 (cff_sid_free_glyph_name): New function.
2389 (cff_cmap_unicode_init): Updated.
2390
2391 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2392
2393 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2394 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002395
2396
David Turner09717352006-06-04 14:33:08 +000023972006-06-04 David Turner <david@freetype.org>
2398
Werner Lembergd724f202006-06-04 15:17:41 +00002399 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2400 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002401 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002402
Werner Lembergd724f202006-06-04 15:17:41 +00002403 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2404 of `face->num_glyphs' which missed the last glyph, due to
2405 the offset-by-1 computation, since the PFR format doesn't
2406 guarantee that glyph index 0 corresponds to the `missing
2407 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002408
Werner Lemberg33779662006-05-26 06:30:05 +000024092006-05-25 Werner Lemberg <wl@gnu.org>
2410
2411 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2412 `-no-undefined'. Reported by Christian Biesinger.
2413
Werner Lemberg24773d62006-05-20 08:53:13 +000024142006-05-19 Brian Weed <bw@imaginengine.com>
2415
2416 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2417 have debug information, and debug libraries use `C7 compatible'
2418 debug info.
2419
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000024202006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2421
Werner Lemberga6523a62006-05-20 08:47:01 +00002422 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002423 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002424
Werner Lemberga6523a62006-05-20 08:47:01 +00002425 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2426 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002427
2428 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002429 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002430
24312006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2432
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002433 * build/unix/configure.raw: Add a fallback to disable Carbon
2434 dependency, if configured with no options on Mac OS X.
2435
24362006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2437
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002438 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002439 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002440 the second part of Savannah bug #16590.
2441
Werner Lemberg545c4e52006-05-17 22:55:04 +000024422006-05-18 Werner Lemberg <wl@gnu.org>
2443
2444 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2445 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2446
David Turnerdc3ff312006-05-17 12:59:35 +000024472006-05-17 David Turner <david@freetype.org>
2448
Werner Lemberg545c4e52006-05-17 22:55:04 +00002449 This is a major patch used to drastically improve the performance of
2450 loading glyphs. This both speeds up loading the glyph vectors
2451 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002452
Werner Lemberg545c4e52006-05-17 22:55:04 +00002453 We now use inline assembler code with GCC to implement `FT_MulFix',
2454 which is probably the most important function related to the
2455 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002456
Werner Lemberg545c4e52006-05-17 22:55:04 +00002457 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002458
2459
Werner Lemberg545c4e52006-05-17 22:55:04 +00002460 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2461 `cursor' and `limit'.
2462
2463 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2464 New functions.
2465 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2466 [TEST]: Remove.
2467
2468 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2469 code.
2470
2471 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2472 `FT_ZERO'
2473 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2474 (af_glyph_hints_reload: Rewrite recognition of weak points.
2475
2476 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2477 constant values out of the loops.
2478
2479 * src/autofit/aftypes.h: Updated.
2480
2481 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2482
2483 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2484 product to get orientation.
2485
2486 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2487 (FT_Stream_OpenGzip): Use it to handle small files directly in
2488 memory.
2489
2490 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2491 Improve performance.
2492
2493 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2494 `limit'.
2495
2496 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2497 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2498 exceedingly large values of number of contours. Speed up by
2499 reducing the number of loops.
2500
2501 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2502
2503
2504 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2505 used to detect rogue clients from 4 to 16. This is to prevent some
2506 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2507 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002508
Werner Lembergde2d90a2006-05-17 08:54:30 +000025092007-05-17 Werner Lemberg <wl@gnu.org>
2510
2511 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002512 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002513
25142006-05-16 Werner Lemberg <wl@gnu.org>
2515
2516 * docs/PROBLEMS: Updated icl issues.
2517
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002518----------------------------------------------------------------------------
2519
Werner Lemberg42b63b22007-01-21 21:01:33 +00002520Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002521David Turner, Robert Wilhelm, and Werner Lemberg.
2522
2523This file is part of the FreeType project, and may only be used, modified,
2524and distributed under the terms of the FreeType project license,
2525LICENSE.TXT. By continuing to use, modify, or distribute this file you
2526indicate that you have read the license and understand and accept it
2527fully.
2528
2529
2530Local Variables:
2531version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002532coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002533End: