blob: 9db3be5c17da89b705c79f84dbe40a7b4c6e0c17 [file] [log] [blame]
Werner Lemberg71dd6872007-07-27 04:44:36 +000012007-07-27 Werner Lemberg <wl@gnu.org>
2
3 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
4 first usage. From Savannah patch #6115.
5
Werner Lembergef915c32007-07-16 20:46:05 +000062007-07-16 Werner Lemberg <wl@gnu.org>
7
8 * docs/CHANGES: Updated.
9
102007-07-16 Derek Clegg <dclegg@apple.com>
11
12 Add new service for getting the ROS from a CID font.
13
14 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
15 * include/freetype/ftcid.h: New file.
16
17 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
18 * include/freetype/internal/services/svcid.h: New file.
19
20 * src/base/ftcid.c: New file.
21
22 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
23 (cff_get_ros): New function.
24 (cff_service_cid_info): New service structure.
25 (cff_services): Register it.
26
27 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
28
29 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
30
31 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
32
Werner Lemberg2f109562007-07-11 05:32:00 +0000332007-07-11 Derek Clegg <dclegg@apple.com>
34
35 Add support for postscript name service to CFF driver.
36
37 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
38 (cff_get_ps_name): New function.
39 (cff_service_ps_name): New service structure.
40 (cff_services): Register it.
41
Werner Lembergb003b3e2007-07-08 07:13:12 +0000422007-07-07 Werner Lemberg <wl@gnu.org>
43
44 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
45 `target'. Reported by Sean McBride.
46
Werner Lemberg1e1b6df2007-07-07 07:30:40 +0000472007-07-06 Werner Lemberg <wl@gnu.org>
48
49 * src/pfr/pfrcmap.c: Include pfrerror.h.
50
51 * src/autofit/afindic.c: Add some external declarations to pacify
52 `make multi' compilation.
53
54 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
55
56 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
57 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
58 src/autofit/aflatin.c (af_latin_hints_compute_edges),
59 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
60 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
61 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
62
63 * docs/release: Mention test compilation targets.
64
Werner Lemberg986ea4b2007-07-04 04:53:15 +0000652007-07-04 Werner Lemberg <wl@gnu.org>
66
67 * docs/PROBLEMS: Mention that some PS based fonts can't be
68 handled correctly by FreeType.
69
Werner Lemberg3033f432007-07-04 14:12:19 +000070 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
71 recursion depth of 1. This was the maximum value in TrueType 1.0,
72 and some older fonts don't set this field correctly.
73
74 * src/gxvalid/gxvmort1.c
75 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
76
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000772007-07-03 Werner Lemberg <wl@gnu.org>
78
79 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
80 `round' to pacify compiler.
81
822007-07-02 Werner Lemberg <wl@gnu.org>
83
84
85 * Version 2.3.5 released.
86 =========================
87
88
89 Tag sources with `VER-2-3-5'.
90
91 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
92 version number to 2.3.5.
93
94 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
95 builds/win32/visualc/freetype.dsp,
96 builds/win32/visualc/freetype.vcproj,
97 builds/win32/visualce/index.html,
98 builds/win32/visualce/freetype.dsp,
99 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
100
101 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
102
103 * builds/unix/configure.raw (version_info): Set to 9:16:3.
104
David Turner0ba89912007-07-01 09:34:04 +00001052007-07-01 David Turner <david@freetype.org>
106
Werner Lemberge3be90b2007-07-02 14:58:58 +0000107 * include/freetype/freetype.h, src/base/ftpatent.c
108 (FT_Face_SetUnpatentedHinting): New function to dynamically change
109 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +0000110
Werner Lemberge3be90b2007-07-02 14:58:58 +0000111 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
112 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +0000113
David Turner74cc0e92007-06-30 22:54:12 +00001142007-06-30 David Turner <david@freetype.org>
115
Werner Lemberge3be90b2007-07-02 14:58:58 +0000116 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
117 initialization.
David Turner74cc0e92007-06-30 22:54:12 +0000118
Werner Lemberge3be90b2007-07-02 14:58:58 +0000119 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
120 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +0000121
Werner Lemberg7723dc32007-06-26 04:44:35 +00001222007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
123
124 Add autofit module for Indic scripts. This currently just reuses
125 the CJK-specific functions.
126
127 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
128 macro.
129 * devel/ftoption.h: Synchronize with
130 include/freetype/config/ftoption.h.
131
132 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
133
134 * src/autofit/afglobal.c, src/autofit/aftypes.h,
135 src/autofit/autofit.c: Updated.
136
137 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
138 (AUTOF_DRV_SRC): Updated.
139
David Turner8f626b02007-06-22 22:22:38 +00001402007-06-23 David Turner <david@freetype.org>
141
Werner Lemberg7854c4a2007-06-23 07:16:20 +0000142 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
143 2007-06-16 that prevented the TrueType module from loading most
144 glyphs.
David Turner8f626b02007-06-22 22:22:38 +0000145
Werner Lemberg5b4d4352007-06-20 07:07:55 +00001462007-06-20 Werner Lemberg <wl@gnu.org>
147
148 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
149 change.
150
Werner Lemberg9fe58152007-06-19 07:57:30 +00001512007-06-19 Werner Lemberg <wl@gnu.org>
152
153 * src/type1/t1load.c (parse_encoding): Handle one more error.
154
Werner Lemberg5a829392007-06-19 04:53:30 +00001552007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
156
157 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
158 FNT_Err_Invalid_File_Format if file format was recognized but
159 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
160 Add verbose debug logs to make it easier to debug failing load
161 attempts.
162 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
163 so return an error if requested face index is > 0.
164 Do not do further attempt to load fonts if a previous attempt has
165 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
166 file format has been recognized but no fonts found in the file.
167
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001682007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
169
170 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
171 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
172 the compiler warnings against unused arguments.
173 (FT_ATSFontGetFileReference): Ditto.
174 (FT_GetFile_From_Mac_ATS_Name): Ditto.
175 (FT_New_Face_From_FSSpec): Ditto.
176 (lookup_lwfn_by_fond): Fix wrong comment.
177 Replace `const StringPtr' by more appropriate type
178 `ConstStr255Param'.
179 FSRefMakePathPath always returns UTF8 POSIX pathname in
180 Mach-O, thus HFS pathname support is dropped.
181 (count_faces): Remove HLock and HUnlock which is not
182 required on Mac OS X anymore.
183 (FT_New_Face_From_SFNT): Ditto.
184 (FT_New_Face_From_FOND): Ditto.
185 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
186 except of HFS pathname support and HLock/HUnlock.
187 They are required on classic CFM environment.
188
1892007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +0000190
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000191 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
192 assertion.
193 (ps_parser_to_bytes): Fix error message.
194
Werner Lembergbb2510d2007-06-18 17:07:49 +0000195 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000196 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
197 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +0000198 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +0000199 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000200
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002012007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000202
Werner Lembergf48aec72007-06-18 07:07:55 +0000203 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
204 logic.
205 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
206 correctly.
207 (ps_parser_load_field_table): Use `fields->array_max' instead of
208 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
209
Werner Lemberg95104a42007-06-18 07:33:10 +0000210 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
211 2007-06-06.
212
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002132007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000214
215 * src/tools/ftrandom.c (font_size): New global variable.
216 (TestFace): Use it.
217 (main): Handle new option `--size' to set `font_size'.
218 (Usage): Updated.
219
Werner Lembergbe183eb2007-06-17 11:27:17 +0000220 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
221 invalid font.
222 (FNT_Load_Glyph): Protect against invalid bitmap width.
223
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002242007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000225
Werner Lemberge12ed562007-06-17 05:31:23 +0000226 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
227 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000228
Werner Lemberge12ed562007-06-17 05:31:23 +0000229 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
230 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000231
Werner Lemberge12ed562007-06-17 05:31:23 +0000232 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
233 and `zp2'.
234 (Ins_IP): Check argument ranges to reject bogus operations properly.
235 (IUP_WorkerRec): Add `max_points' member.
236 (_iup_worker_interpolate): Check argument ranges.
237 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000238
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002392007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000240
241 * src/winfonts/winfnt.h: Add necessary structures for PE resource
242 parsing.
243 (WinPE32_HeaderRec): New structure.
244 (WinPE32_SectionRec): New structure.
245 (WinPE_RsrcDirRec): New structure.
246 (WinPE_RsrcDirEntryRec): New structure.
247 (WinPE_RsrcDataEntryRec): New structure.
248 (FNT_FontRec): Remove unused `size_shift' field.
249
250 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
251 loading bitmap .fon files in PE format.
252
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002532007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000254
255 * builds/win32/ftdebug.c: Unify debug level handling with other
256 platforms.
257
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002582007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000259
260 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
261 console as well as to the debugger.
262
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002632007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000264
265 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
266 cover all ranges which could possibly be handled by the aflatin
267 module (since the default fallback for unknown ranges is now the
268 afcjk module). It might be necessary to fine-tune this further by
269 splitting off modules for Greek, Cyrillic, or other blocks.
270
David Turnerb7920172007-06-11 05:37:35 +00002712007-06-11 David Turner <david@freetype.org>
272
Werner Lemberg49e18b82007-06-11 21:15:09 +0000273 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
274 incorrect segment linking computation. This was the root cause of
275 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000276
277
Werner Lemberg49e18b82007-06-11 21:15:09 +0000278 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
279 to improve the Latin auto-hinter. Note that the new code is
280 disabled by default since it is not stabilized yet.
281
282 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
283 (disabled currently).
284
285 * src/autofit/afhints.c: Remove dead code.
286 (af_axis_hints_new_edge): Add argument to handle segment directions.
287 (af_edge_flags_to_string): New function.
288 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
289 option flags.
290 (af_glyph_hints_reload): Add argument to handle inflections.
291 Simplify.
292 (af_direction_compute): Fine tuning.
293 (af_glyph_hints_align_edge_points): Fix logic.
294 (af_glyph_hints_align_strong_points): Do linear search for small
295 edge counts.
296 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
297 (af_iup_shift): Handle zero `delta'.
298
299 * src/autofit/afhints.h: Updated.
300 (AF_SORT_SEGMENTS): New macro (disabled).
301 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
302
303 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
304 argument to pass option flags for handling scripts.
305 * src/autofit/afglobal.h: Updated.
306
307 * src/autofit/afcjk.c: Updated.
308 * src/autofit/aflatin.c: Updated.
309 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
310
311 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
312 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
313 Don't set `edge->dir'
314 (af_latin_hint_edges): Add more logging.
315
316 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000317
Werner Lembergf6c120f2007-06-11 04:55:58 +00003182007-06-11 Werner Lemberg <wl@gnu.org>
319
Werner Lembergcf7b7642007-06-11 04:58:01 +0000320 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000321
David Turner84c6f882007-06-10 20:51:04 +00003222007-06-10 David Turner <david@freetype.org>
323
Werner Lembergf6c120f2007-06-11 04:55:58 +0000324 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
325 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000326
Werner Lembergf6c120f2007-06-11 04:55:58 +0000327 * include/freetype/config/ftoption.h: Clarify documentation
328 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000329
Werner Lembergf6c120f2007-06-11 04:55:58 +0000330
331 Add new `FT_Face_CheckTrueTypePatents' API.
332
333 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
334 declaration.
335
336 * include/freetype/internal/services/svttglyf.h,
337 src/base/ftpatent.c: New files.
338
339 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
340 New macro.
341
342 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
343 `ttpload.h'.
344 (tt_service_truetype_glyf): New service structure.
345 (tt_services): Register it.
346
347 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
348 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000349
Werner Lemberg33db39e2007-06-08 06:30:29 +00003502007-06-08 Werner Lemberg <wl@gnu.org>
351
David Turner84c6f882007-06-10 20:51:04 +0000352 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000353 Fonts without a cmap must be handled correctly by FreeType (anything
354 else would be a bug).
355
356
357 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
358 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
359
Werner Lemberg88ab6382007-06-07 05:01:56 +00003602007-06-07 Werner Lemberg <wl@gnu.org>
361
362 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
363 tt_sbit_decoder_load_image): Protect against integer overflows.
364
365
366 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
367 for `x_control' and `y_control'.
368
Werner Lemberg2a2dca62007-06-06 04:39:37 +00003692007-06-06 Werner Lemberg <wl@gnu.org>
370
371 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
372
Werner Lemberga8d65492007-06-06 04:47:49 +0000373
374 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
375 FreeType error.
376
Werner Lemberg470210b2007-06-06 10:05:49 +0000377
378 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
379 `font_count'.
380
381
382 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
383
384
385 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
386 `FT_Error'.
387 Check `fd_index'.
388 (cff_slot_load): Updated.
389 * src/cff/cffgload.h: Updated.
390
Werner Lemberg6c054752007-06-05 05:27:54 +00003912007-06-05 Werner Lemberg <wl@gnu.org>
392
393 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
394 (pfr_glyph_load_simple): Convert assertion into normal FreeType
395 error.
396 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000397 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
398 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000399
400 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
401
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000402
Werner Lemberg470210b2007-06-06 10:05:49 +0000403 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000404
Werner Lemberge5c14d92007-06-05 20:50:37 +0000405
406 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
407 in case of parsing error.
408 (ps_parser_load_field): Updated.
409
410 * src/type1/t1load.c (parse_font_matrix): Updated.
411
Werner Lembergad18b362007-06-04 07:04:05 +00004122007-06-04 Werner Lemberg <wl@gnu.org>
413
414 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
415
416 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
417
Werner Lemberg3d507fe2007-06-03 16:54:55 +00004182007-06-03 Werner Lemberg <wl@gnu.org>
419
Werner Lemberg99a320b2007-06-03 19:21:26 +0000420 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
421 George Williams (with some modifications).
422
4232007-06-03 Werner Lemberg <wl@gnu.org>
424
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000425 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
426 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
427 face == NULL. Suggested by Graham Asher.
428
Werner Lembergce280a22007-06-03 05:58:30 +00004292007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
430
431 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
432
Werner Lemberg5b591e42007-06-01 22:16:43 +00004332007-06-02 Werner Lemberg <wl@gnu.org>
434
435 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
436 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
437
438 * src/bdf/bdflib.c (bdf_load_font): Use them.
439
440 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
441
Werner Lembergb9933f42007-06-01 21:27:12 +00004422007-06-01 Werner Lemberg <wl@gnu.org>
443
444 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
445 (FTC_CMapCache_Lookup): Remove unused code.
446
Werner Lembergc793d902007-06-01 20:51:11 +00004472007-06-01 Sean McBride <sean@rogue-research.com>
448
449 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
450 unused.
451
Werner Lembergbebc7b12007-06-01 06:32:30 +00004522007-06-01 Werner Lemberg <wl@gnu.org>
453
454 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
455 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000456 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000457
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000458 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
459 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
460
Werner Lembergba03af62007-05-30 13:57:02 +00004612007-05-30 Werner Lemberg <wl@gnu.org>
462
463 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
464 against too small binary data strings.
465
466 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
467
David Turnerf0cd69c2007-05-28 15:42:09 +00004682007-05-28 David Turner <david@freetype.org>
469
Werner Lemberg99e0c182007-05-29 07:00:23 +0000470 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
471 transformation. This significantly reduces the loading time of CFF
472 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000473
Werner Lemberg99e0c182007-05-29 07:00:23 +0000474 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000475
Werner Lemberg99e0c182007-05-29 07:00:23 +0000476 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
477 hinting script to CJK, since it works well with more scripts than
478 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
479 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000480
Werner Lemberg1c8980e2007-05-25 07:11:12 +00004812007-05-25 Werner Lemberg <wl@gnu.org>
482
483 * docs/CHANGES: Updated.
484
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00004852007-05-24 Werner Lemberg <wl@gnu.org>
486
487 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
488 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
489
4902007-05-24 Graham Asher <graham.asher@btinternet.com>
491
492 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
493 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
494
David Turner0d0365e2007-05-22 09:53:44 +00004952007-05-22 David Turner <david@freetype.org>
496
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000497 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
498 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000499
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000500
501 Avoid heap blowup with very large .Z font files. This fixes
502 Savannah bug #19910.
503
504 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
505 `in_limit', `pad', `pad_bits', and `in_buff' members.
506 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
507 `buf_total' members.
508
509 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
510 only one argument.
511 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000512
5132007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000514
515 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
516 (ps_dimension_set_mask_bits): Remove `const'.
517
David Turner0d0365e2007-05-22 09:53:44 +00005182007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000519
520 * src/sfnt/ttmtx.c (tt_face_get_metrics)
521 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
522
Werner Lembergb826fa72007-05-19 07:18:48 +00005232007-05-19 Derek Clegg <dclegg@apple.com>
524
525 Savannah patch #5929.
526
527 * include/freetype/tttables.h, src/base/ftobjcs.c
528 (FT_Get_CMap_Format): New function.
529
530 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
531 `format' member.
532 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
533 cmap_info->format.
534
Werner Lemberg6f99c882007-05-19 07:01:49 +00005352007-05-19 Werner Lemberg <wl@gnu.org>
536
537 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
538 before handling subglyphs so that it can be reinitialized each time.
539 This fixes Savannah bug #19859.
540
Werner Lemberg95bc9d32007-05-16 15:19:42 +00005412007-05-16 Werner Lemberg <wl@gnu.org>
542
543 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
544 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
545 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
546 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
547 tt_face_get_metrics): Fix type-punning issues.
548
David Turner0a24bd22007-05-15 10:54:10 +00005492007-05-15 David Turner <david@freetype.org>
550
551 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000552 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
553 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000554 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000555 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000556
Werner Lemberg607dec72007-05-15 06:49:37 +00005572007-05-15 Graham Asher <graham.asher@btinternet.com>
558
559 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
560 variable.
561 * src/autofit/afloader.c (af_loader_load_g): Ditto.
562
563 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
564 (open_face_from_buffer): Initialize `stream'.
565 (FT_Request_Metrics): Remove unused variable.
566 Remove redundant `break' statements.
567 (FT_Get_Track_Kerning): Remove unused variable.
568
569 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
570 afm_parse_kern_data): Remove redundant
571 `break' statements.
572 (afm_parser_parse): Ditto.
573 Don't use uninitialized variables.
574
575 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
576 Use `|' operator instead of `^' to set it.
577 Update all users.
578
579 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
580 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
581
582 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
583 comparison.
584 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
585 (TT_Load_Glyph): Remove unused variable.
586
Werner Lemberg8d463a52007-05-13 16:01:55 +00005872007-05-13 Derek Clegg <dclegg@apple.com>
588
589 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
590 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
591
David Turner711cf842007-05-11 14:36:24 +00005922007-05-11 David Turner <david@freetype.org>
593
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000594 * src/cache/ftbasic.c, include/freetype/ftcache.h
595 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
596 functions that allow us to look up glyphs using an FTC_Scaler object
597 to specify the size, making it possible to use fractional pixel
598 sizes.
599
600 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
601 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000602
Werner Lemberg94be20e2007-05-09 20:02:55 +00006032007-05-09 Graham Asher <graham.asher@btinternet.com>
604
605 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
606 (af_latin_metrics_scale_dim): Fix compiler warnings.
607
Werner Lemberg41271032007-05-06 04:51:48 +00006082007-05-06 Werner Lemberg <wl@gnu.org>
609
610 * builds/win32/visualce/freetype.sln: Removed, as requested by
611 Vincent.
612
Werner Lembergdf49e692007-05-04 06:30:05 +00006132007-05-04 Vincent RICHOMME <richom.v@free.fr>
614
615 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
616 PC targets.
617
618 * docs/CHANGES: Document them.
619
6202007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000621
622 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
623 mmap (which might happen on some RTOS). From Savannah patch #5909.
624
Werner Lemberg106eaf12007-05-03 07:07:47 +00006252007-05-03 Werner Lemberg <wl@gnu.org>
626
627 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
628 * include/freetype/freetype.h (FT_Set_Char_Size): Update
629 documentation.
630
Werner Lemberg1b5267d2007-04-28 21:06:15 +00006312007-04-28 Victor Stinner <victor.stinner@inl.fr>
632
633 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
634 `cmap'.
635
Werner Lembergcc712a22007-04-27 17:16:50 +00006362007-04-27 Werner Lemberg <wl@gnu.org>
637
638 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
639 number of points in contours. Problem reported by Victor Stinner
640 <victor.stinner@haypocalc.com>.
641 (TT_Process_Simple_Glyph): Synchronize variable types.
642
Werner Lemberg45bb18f2007-04-26 06:26:35 +00006432007-04-26 Werner Lemberg <wl@gnu.org>
644
645 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
646 zero in case of error. This fixes Savannah bug #19689.
647
David Turnera8b45e62007-05-11 14:10:30 +00006482007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
649
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000650 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
651 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000652
Werner Lembergfcc1f472007-04-10 11:51:50 +00006532007-04-10 Martin Horak <horakm@centrum.cz>
654
655 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
656 Ignore `hhea' table. This fixes Savannah bug #19261.
657
Werner Lemberg14bf82e2007-04-10 04:09:49 +00006582007-04-09 Werner Lemberg <wl@gnu.org>
659
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000660
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000661 * Version 2.3.4 released.
662 =========================
663
664
665 Tag sources with `VER-2-3-4'.
666
667 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
668 version number to 2.3.4.
669
670 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
671 builds/win32/visualc/freetype.dsp,
672 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
673
674 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
675
676 * builds/unix/configure.raw (version_info): Set to 9:15:3.
677
Werner Lembergf4a52a62007-04-09 08:40:11 +00006782007-04-09 Martin Horak <horakm@centrum.cz>
679
680 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
681 memory stream to avoid a crash with the incremental memory
682 interface (Savannah bug #19260).
683
David Turner1dcb4442007-04-06 08:19:04 +00006842007-04-06 David Turner <david@freetype.org>
685
Werner Lembergc81cf612007-04-06 09:28:23 +0000686 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
687 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000688
Werner Lemberg9f83e052007-04-05 02:28:23 +00006892007-04-04 Werner Lemberg <wl@gnu.org>
690
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000691
Werner Lemberg9f83e052007-04-05 02:28:23 +0000692 * Version 2.3.3 released.
693 =========================
694
695
696 Tag sources with `VER-2-3-3'.
697
698 * docs/CHANGES: Mention CVE-2007-1351.
699
David Turner7338ec22007-04-03 14:30:34 +00007002007-04-03 David Turner <david@freetype.org>
701
702 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000703 if one of the resolution values is 0, treat it as if it were the
704 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000705
David Turnere6472c12007-04-02 13:13:54 +00007062007-04-02 David Turner <david@freetype.org>
707
Werner Lemberg94f12272007-04-03 07:19:53 +0000708 Add special code to detect `extra-light' fonts and do not snap their
709 stem widths too much to avoid bizarre hinting effects.
710
711 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
712 `extra_light' members.
713
714 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
715 them.
716 (af_latin_metrics_scale_dim): Set `extra_light'.
717 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000718
David Turner3f539692007-03-28 14:53:40 +00007192007-03-28 David Turner <david@freetype.org>
720
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000721 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000722 padding.
723
Werner Lemberga08b2172007-03-28 07:17:17 +00007242007-03-28 Werner Lemberg <wl@gnu.org>
725
726 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
727 gracefully.
728 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000729 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000730 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
731 number of code points in Unicode.
732
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000733 * builds/win32/visualc/index.html,
734 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000735 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000736 s/232/233/.
737
738 * docs/CHANGES: Mention ftdiff.
739
David Turner3b242d32007-03-26 12:03:04 +00007402007-03-26 David Turner <david@freetype.org>
741
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000742 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
743 corresponding code.
744 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000745
Werner Lemberga08b2172007-03-28 07:17:17 +0000746 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000747 computations in order to ignore single-point contours. These are
748 never rasterized and correspond in certain fonts to mark-attach
749 points that are very far from the glyph's real outline, ruining the
750 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000751
Werner Lemberga08b2172007-03-28 07:17:17 +0000752 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000753 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000754 Otherwise code that uses them will most certainly ruin the fixed
755 advance property.
David Turner23553d62007-03-26 13:37:17 +0000756
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000757 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
758 documentation and bump version number to 2.3.3.
759
760 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
761
762 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000763
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00007642007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
765
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000766 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
767 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000768 * builds/vms/ftconfig.h: Ditto.
769 * include/freetype/config/ftconfig.h: Ditto.
770
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00007712007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
772
Werner Lemberg14ffe092007-03-22 06:12:43 +0000773 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
774 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000775 proposed by Sean McBride:
776 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
777
7782007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
779
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000780 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
781 setjmp, proposed by Sean McBride:
782 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
783
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00007842007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
785
Werner Lembergc9f6c662007-03-21 13:30:14 +0000786 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
787 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
788 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000789
David Turner74c34eb2007-03-18 07:19:31 +00007902007-03-18 David Turner <david@freetype.org>
791
Werner Lembergc9f6c662007-03-21 13:30:14 +0000792 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
793 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000794
Werner Lembergc9f6c662007-03-21 13:30:14 +0000795 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000796
David Turner89020d92007-03-17 17:48:57 +00007972007-03-17 David Turner <david@freetype.org>
798
Werner Lembergc9f6c662007-03-21 13:30:14 +0000799 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
800 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000801
Werner Lemberg25d592a2007-03-09 07:59:35 +00008022007-03-09 Werner Lemberg <wl@gnu.org>
803
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000804
Werner Lemberg25d592a2007-03-09 07:59:35 +0000805 * Version 2.3.2 released.
806 =========================
807
808
809 Tag sources with `VER-2-3-2'.
810
811 * builds/win32/visualc/index.html,
812 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000813 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000814 s/231/232/.
815
David Turner3a51afa2007-03-08 10:50:38 +00008162007-03-08 David Turner <david@freetype.org>
817
Werner Lemberg25d592a2007-03-09 07:59:35 +0000818 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000819
Werner Lemberg25d592a2007-03-09 07:59:35 +0000820 * builds/unix/configure.raw (version_info): Set to 9:13:3.
821
822 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
823
824 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000825
Werner Lemberg1e259de2007-03-08 15:39:21 +0000826 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
827 function to work properly, over-writing user-provided buffers in
828 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000829
David Turner121cad52007-03-08 16:43:50 +0000830
Werner Lemberg3d92f082007-03-06 11:59:24 +00008312007-03-05 Werner Lemberg <wl@gnu.org>
832
833 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
834 macro for `strstr'.
835
836 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
837 `trick_names', as suggested by Ivan Nincic.
838
David Turner085bc6e2007-03-05 17:40:03 +00008392007-03-05 David Turner <david@freetype.org>
840
Werner Lembergd112cf02007-03-06 12:06:56 +0000841 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
842 case FT_Init_FreeType fails for some reason. Problem reported by
843 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000844
Werner Lembergd112cf02007-03-06 12:06:56 +0000845 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
846 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
847 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
848 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000849
Werner Lembergd112cf02007-03-06 12:06:56 +0000850 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
851 signed values, not unsigned ones. Problem reported by Johannes
852 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000853
David Turner601aefe2007-02-21 16:47:49 +00008542007-02-21 David Turner <david@freetype.org>
855
Werner Lembergde5e6862007-02-25 21:06:43 +0000856 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
857 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000858
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00008592007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
860
861 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
862 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
863 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
864
Werner Lemberga0915172007-02-16 08:12:50 +00008652007-02-16 Werner Lemberg <wl@gnu.org>
866
867 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
868 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
869
David Turner2c4500e2007-02-14 15:08:47 +00008702007-02-14 David Turner <david@freetype.org>
871
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000872 It seems that the following changes fix most of the known
873 interpreter problems with my fonts, but more testing is needed,
874 though.
875
876 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
877 (TT_MulFix14): Rewrite.
878 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
879 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000880
Werner Lembergc6a14082007-02-12 22:08:15 +00008812007-02-12 Werner Lemberg <wl@gnu.org>
882
883 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
884 warnings.
885
886 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
887 (bdf_interpret_style): Ditto.
888
David Turnerc0f9c4a2007-02-12 14:55:03 +00008892007-02-12 David Turner <david@freetype.org>
890
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000891 Simplify projection and dual-projection code interface.
892
Werner Lemberg406d25f2007-02-12 22:01:18 +0000893 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
894 FT_Vector' as argument type.
895 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
896 Updated.
897 (CUR_fast_project, CUR_fast_dualproj): New macros.
898 (Project, Dual_Project, Project_x, Project_y): Updated.
899 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
900 macros.
901
902
903 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
904 adjustments for the non-light auto-hinted modes. Gets rid of
905 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000906
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000907 * src/autofit/aflatin.c (af_latin_hints_link_segments,
908 af_latin_hints_compute_edges): Slight optimization of the segment
909 linker and better handling of serif segments to get rid of broken
910 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000911
David Turnerc0f9c4a2007-02-12 14:55:03 +0000912
Werner Lemberg442bfb82007-02-12 21:44:10 +0000913 Introduce new string functions and the corresponding macros to get
914 rid of various uses of strcpy and other `evil' functions, as well as
915 to simplify a few things.
916
917 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
918 ft_mem_strcpyn): New declarations.
919 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
920 macros.
921 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
922 functions.
923
924 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
925 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
926 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
927 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
928 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
929 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
930 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
931 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000932
Werner Lemberg406d25f2007-02-12 22:01:18 +0000933 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
934
Werner Lemberg582067d2007-02-11 15:03:05 +00009352007-02-11 Werner Lemberg <wl@gnu.org>
936
937 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
938 non-spacing glyphs.
939
Werner Lemberg8f474532007-02-07 08:31:01 +00009402007-02-07 Tom Parker <palfrey@tevp.net>
941
942 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
943 pointer.
944
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
946
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000947 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
948 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000949 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000950 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
951 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
952 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
953 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000954
955 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
956 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000957 * builds/mac/ftmac.c: Ditto.
958
9592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
960
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000961 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000962 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000963 #include <ftmac.c>.
964
9652007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
966
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000967 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
968 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
969 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
970 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
971 FT_GetFilePath_From_Mac_ATS_Name.
972 * builds/mac/ftmac.c: Ditto.
973
9742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
975
Werner Lembergdcbb7082007-02-08 08:54:09 +0000976 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000977 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
978 for passing to FT_New_Face_From_FSSpec.
979
9802007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
981
Werner Lembergdcbb7082007-02-08 08:54:09 +0000982 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000983 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000984
985 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
986 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000987 * builds/mac/ftmac.c (OS_INLINE): Ditto.
988
Werner Lemberg313d7772007-02-01 08:10:45 +00009892007-02-01 Werner Lemberg <wl@gnu.org>
990
991 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
992 Explain why applications shouldn't use it. Found by Alexei.
993
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009942007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000995
996 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
997 message.
998
999 * src/gxvalid/gxvmort1.c
1000 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
1001 message.
1002
Werner Lemberg53935932007-01-31 08:53:02 +000010032007-01-31 Werner Lemberg <wl@gnu.org>
1004
1005
1006 * Version 2.3.1 released.
1007 =========================
1008
1009
1010 Tag sources with `VER-2-3-1-FINAL'.
1011
1012 * builds/win32/visualc/freetype.dsp,
1013 builds/win32/visualc/freetype.vcproj: s/230/231/.
1014 * builds/win32/visualc/index.html: s/221/231/.
1015
1016 * vms_make.com: Add `ftgasp'.
1017
David Turnera7ee6082007-01-30 10:33:53 +000010182007-01-30 David Turner <david@freetype.org>
1019
Werner Lemberg53935932007-01-31 08:53:02 +00001020 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +00001021
Werner Lemberg53935932007-01-31 08:53:02 +00001022 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +00001023
Werner Lemberg25d592a2007-03-09 07:59:35 +00001024 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +00001025 s/2.3.0/2.3.1/.
1026
1027 * builds/unix/configure.raw (version_info): Set to 9:12:3.
1028
1029
1030 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
1031 (af_loader_load_g): Disable the warper (i.e., the light hinting
1032 improvements) to make a 2.3.1 bugfix release before introducing a
1033 new feature. This should give us more time to tune and improve the
1034 warper for the next release.
1035
1036 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +00001037
David Turnerd91eebd2007-01-26 15:05:41 +000010382007-01-25 David Turner <david@freetype.org>
1039
Werner Lembergbf241762007-01-26 16:08:49 +00001040 For light auto-hinting, improve glyph advance widths and resurrect
1041 normal/full hinting to its normal quality.
1042
1043 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
1044 and `xmax_delta'.
1045 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
1046 and `xmax_delta'.
1047
1048 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
1049 preprocessor conditional with if-clause, handling both light and
1050 normal mode.
1051
1052 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
1053 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00001054
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000010552007-01-25 Werner Lemberg <wl@gnu.org>
1056
1057 * docs/release: Updated -- Savannah uses a new uploading scheme.
1058
David Turnera42567b2007-01-25 12:23:37 +000010592007-01-25 David Turner <david@freetype.org>
1060
Werner Lembergd7855662007-01-25 13:53:56 +00001061 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00001062
Werner Lembergd7855662007-01-25 13:53:56 +00001063 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1064 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
1065 functions.
David Turnera42567b2007-01-25 12:23:37 +00001066
Werner Lembergd7855662007-01-25 13:53:56 +00001067 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00001068
Werner Lembergb1be9e82007-01-25 11:50:00 +000010692007-01-25 Werner Lemberg <wl@gnu.org>
1070
1071 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00001072 correctly in a sanity check. Since this function is only used to
1073 load local and global functions, any charstring that called the last
1074 local/global function would fail otherwise. This fixes Savannah bug
1075 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00001076
1077 * docs/CHANGES: Document it.
1078
David Turnerb6de8d12007-01-23 15:51:50 +000010792007-01-23 David Turner <david@freetype.org>
1080
Werner Lembergb1be9e82007-01-25 11:50:00 +00001081 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1082 prevented compilation when disabling both the unpatented and the
1083 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00001084
Werner Lembergb1be9e82007-01-25 11:50:00 +00001085
1086 Fix and enable the warper to improve `light' hinting mode. This is
1087 not necessarily a final version, but it seems to work well.
1088
1089 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1090 Disable code.
1091 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1092 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1093
1094 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1095 (af_warper_compute_line_best): Fix array size of `scores'.
1096 (af_warper_compute): Better handling of border cases.
1097 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1098 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00001099
Werner Lemberg011d1112007-01-21 09:36:00 +000011002007-01-21 Werner Lemberg <wl@gnu.org>
1101
Werner Lemberg42b63b22007-01-21 21:01:33 +00001102 * ChangeLog: Split off older entries into...
1103 * ChangeLog.22: This new file.
1104
11052007-01-21 Werner Lemberg <wl@gnu.org>
1106
Werner Lemberg555258f2007-01-21 09:46:37 +00001107 * docs/CHANGES: Document SHZ fix.
1108
11092007-01-21 George Williams <gww@silcom.com>
1110
1111 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1112 points.
1113
11142007-01-21 Werner Lemberg <wl@gnu.org>
1115
Werner Lemberg011d1112007-01-21 09:36:00 +00001116 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1117 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1118
Werner Lemberg87a5a432007-01-17 12:44:39 +000011192007-01-17 Werner Lemberg <wl@gnu.org>
1120
Werner Lembergb8003292007-01-17 12:56:25 +00001121
1122 * Version 2.3.0 released.
1123 =========================
1124
1125
1126 Tag sources with `VER-2-3-0-FINAL'.
1127
11282007-01-17 Werner Lemberg <wl@gnu.org>
1129
Werner Lemberg87a5a432007-01-17 12:44:39 +00001130 * docs/release: Updated.
1131
David Turner22122722007-01-16 20:06:44 +000011322007-01-16 David Turner <david@freetype.org>
1133
Werner Lemberg87a5a432007-01-17 12:44:39 +00001134 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1135 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1136 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1137 warnings.
David Turner22122722007-01-16 20:06:44 +00001138
Werner Lemberg267e1d72007-01-15 07:48:09 +000011392007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1140
1141 * builds/amiga/makefile, builds/amiga/makefile.os4,
1142 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1143
1144 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1145
Werner Lemberg8c4120d2007-01-15 06:42:40 +000011462007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1147
1148 Fix various compiler warnings.
1149
1150 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1151 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1152 s/index/strike_index/.
1153 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1154
1155 * src/gxvalid/gxvmorx5.c
1156 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1157
1158 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1159 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1160 uninitialized variables.
1161
Werner Lemberg6164a9d2007-01-13 23:01:36 +000011622007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1163
1164 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1165
Werner Lemberg281c1482007-01-13 22:50:51 +000011662007-01-13 Werner Lemberg <wl@gnu.org>
1167
1168 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1169 versions up to 0x3FF without complaining.
1170
Werner Lembergac250b22007-01-13 14:01:36 +000011712007-01-13 Derek Clegg <dclegg@apple.com>
1172
1173 Add FT_Get_PS_Font_Info interface to CFF driver.
1174
1175 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1176 (CFF_FontRec): Add `font_info' field.
1177
1178 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1179 (cff_font_done): Free font->font_info if necessary.
1180
1181 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1182 (cff_service_ps_info): Register cff_ps_get_font_info.
1183
Werner Lemberg23df31a2007-01-13 08:45:00 +000011842007-01-13 Werner Lemberg <wl@gnu.org>
1185
1186 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1187 with C++ compiler.
1188
1189 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1190 af_glyph_hints_dump_edges): Ditto.
1191
1192 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1193 `modules.cfg').
1194
1195 * src/sfnt/ttsbit0.h: Remove.
1196
1197 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1198
Werner Lemberg27cf9de2007-01-13 07:34:23 +000011992007-01-12 David Turner <david@freetype.org>
1200
1201 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1202 bug in the bitmap emboldener if the pitch of the source bitmap is
1203 much larger than its width.
1204
1205 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1206 compilation warning.
1207
Werner Lemberg6d96d312007-01-12 10:30:19 +000012082007-01-12 Werner Lemberg <wl@gnu.org>
1209
1210 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1211 `automake' CVS module from sources.redhat.com.
1212
Werner Lemberg17432b52007-01-12 09:28:44 +000012132007-01-11 Werner Lemberg <wl@gnu.org>
1214
1215 * src/type1/t1load.c (is_space): Removed.
1216 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1217 (parse_charstrings): Use IS_PS_TOKEN.
1218
1219
1220 * autogen.sh: Avoid bash specific syntax.
1221
David Turner038ace22007-01-11 15:00:59 +000012222007-01-11 David Turner <david@freetype.org>
1223
Werner Lemberg17432b52007-01-12 09:28:44 +00001224 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001225
Werner Lemberg17432b52007-01-12 09:28:44 +00001226 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001227
Werner Lemberg17432b52007-01-12 09:28:44 +00001228 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1229 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001230 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001231
Werner Lemberg17432b52007-01-12 09:28:44 +00001232 * autogen.sh: Small fix to get it working on Mac OS X properly:
1233 The issue is that GNU libtool is called `glibtool' on this platform,
1234 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001235
David Turner2628ea92007-01-10 13:15:56 +000012362007-01-10 David Turner <david@freetype.org>
1237
Werner Lemberg17432b52007-01-12 09:28:44 +00001238 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1239 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001240
Werner Lemberg17432b52007-01-12 09:28:44 +00001241 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1242 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1243 version number to 2.3.0.
1244
1245 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1246 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001247
1248 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001249 include/freetype/ftlcdfil.h: Update reference documentation with
1250 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001251
Werner Lemberg17432b52007-01-12 09:28:44 +00001252 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1253 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001254
Werner Lembergbf02d392007-01-10 07:07:37 +000012552007-01-10 Derek Clegg <dclegg@apple.com>
1256
1257 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1258 values.
1259
David Turnerf48b60e2007-01-08 15:15:32 +000012602007-01-08 David Turner <david@freetype.org>
1261
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001262 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001263
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001264 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1265 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001266 corresponding to a given character pixel size.
1267
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001268 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1269 `gasp' table, in order to avoid potential problems with later
1270 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001271
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001272 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1273 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001274
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001275 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1276 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1277 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1278 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001279
Werner Lemberge6b6f372007-01-07 00:06:47 +000012802007-01-07 Werner Lemberg <wl@gnu.org>
1281
Werner Lembergb8004d22007-01-07 09:13:38 +00001282 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1283 Type 11 fonts.
1284 Scan for `/sfnts' token.
1285
12862007-01-07 Werner Lemberg <wl@gnu.org>
1287
1288 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001289
Werner Lembergbe5f7972007-01-06 07:51:48 +000012902007-01-06 Werner Lemberg <wl@gnu.org>
1291
1292 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1293 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1294
David Turnera8cf42b2007-01-04 16:46:46 +000012952007-01-04 David Turner <david@freetype.org>
1296
Werner Lembergf6294392007-01-06 07:47:45 +00001297 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1298 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001299
Werner Lembergf6294392007-01-06 07:47:45 +00001300
1301 Do not allocate interpreter-specific tables in memory if we are not
1302 going to load glyphs with the bytecode interpreter anyway.
1303
1304 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1305 only if glyph is hinted.
1306 Updated.
1307 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1308 and `cvs_ready'.
1309 Add `tt_size_ready_bytecode' declaration.
1310 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1311 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1312 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1313 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1314 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001315
David Turner91a34022007-01-05 14:47:08 +00001316
Werner Lembergf6294392007-01-06 07:47:45 +00001317 Don't extract the metrics table from the SFNT font file. Instead,
1318 reparse it on each glyph load. The runtime difference is not
1319 noticeable, and it can save a lot of heap memory when memory-mapped
1320 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001321
Werner Lembergf6294392007-01-06 07:47:45 +00001322 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1323 `horz_metrics_offset' and `vert_metrics_ofset'.
1324 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1325 Updated.
1326
1327
1328 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1329
1330
1331 Do not load the CFF index offsets into memory, since this wastes a
1332 *lot* of heap memory with large Asian CFF fonts. There is no
1333 significant performance loss.
1334
1335 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1336 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1337 `data_size'.
1338 (CFF_CharsetRec): Add field `num_glyphs'.
1339
1340 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1341 cff_charset_cid_to_gindex): New functions.
1342 (cff_new_index): Renamed to...
1343 (cff_index_init): This. Update all callers.
1344 Updated -- some code has been moved to `cff_index_load_offsets'.
1345 (cff_done_index): Renamed to...
1346 (cff_index_done): This. Update all callers.
1347 (cff_index_get_pointers, cff_index_access_element): Updated to use
1348 stream offsets.
1349 (cff_charset_compute_cids): Set `num_glyphs' field.
1350 (cff_encoding_load): Updated.
1351
1352 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001353
13542007-01-04 David Turner <david@freetype.org>
1355
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001356 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1357 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001358
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001359 * README.CVS: Add common problem description and solution
1360 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001361
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001362 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001363
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001364 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001365
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001366 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001367
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001368 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1369 (TWorker): This.
1370 Remove `count_table' and `memory'.
1371 Make `grays' a pointer.
1372 (TRaster): New structure.
1373 (count_table): New static array.
1374 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1375 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1376 ft_black_set_mode, ft_black_render): Updated.
1377 (ft_black_init): Don't initialize `count_table'.
1378 (ft_black_reset): Use the render pool. This saves about 6KB of
1379 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001380
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001381 * src/smooth/ftgrays.c (TRaster): Replaced with...
1382 (TWorker): This.
1383 Remove `memory'.
1384 (TRaster): New structure.
1385
1386 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1387 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1388 gray_render_span, gray_raster_render): Updated.
1389 (gray_raster_reset): Use the render pool. This saves about 6KB of
1390 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001391
David Turner8a6c44e2007-01-04 17:03:11 +00001392 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1393 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001394 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1395 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1396 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001397
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001398 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1399 Remove a typo that results in no hinting and a memory leak with some
1400 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001401
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001402 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001403 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001404 CFF_Faces in it. We need to close all faces before destroying the
1405 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001406
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000014072007-01-02 Werner Lemberg <wl@gnu.org>
1408
1409 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1410 Remove compiler warning.
1411
David Turner9207e002007-01-02 16:58:13 +000014122007-01-02 David Turner <david@freetype.org>
1413
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001414 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001415
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000014162006-12-31 Masatake YAMATO <jet@gyve.org>
1417
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001418 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1419 function.
1420 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001421 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001422 `gxv_kern_subtable_fmt0_pairs_validate'.
1423
David Turner115b4422006-12-22 11:37:05 +000014242006-12-22 David Turner <david@freetype.org>
1425
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001426 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1427 warnings.
David Turner115b4422006-12-22 11:37:05 +00001428
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001429 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1430 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001431
Werner Lemberg4755bf72006-12-16 08:58:44 +000014322006-12-16 Anders Kaseorg <anders@kaseorg.com>
1433
1434 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1435 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1436
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000014372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1438
Werner Lemberg9b774e22007-01-16 06:11:27 +00001439 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001440 sync with the modification by Jens Claudius on 2006-08-22; cf.
1441 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 +00001442
14432006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1444
1445 * src/base/ftmac.c: Specialized for Mac OS X only.
1446 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1447 * builds/unix/configure.raw: Ditto. When explicit switches for
1448 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1449 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1450
14512006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1452
1453 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1454 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1455 instead of src/base/ftmac.c
1456 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1457 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1458 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1459 that cannot be built at present.
1460
14612006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1462
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001463 * src/base/ftobjs.c: Improvement of resource fork handler for
1464 POSIX, cf.
1465 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001466 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1467 format or .dfont, to simulate the face index number counted by ftmac.c.
1468 (IsMacResource): Return the number of scalable faces correctly.
1469
Werner Lembergec5b4502006-12-10 07:51:38 +000014702006-12-10 Werner Lemberg <wl@gnu.org>
1471
1472 * builds/toplevel.mk (version): Protect against `distclean' target.
1473
Werner Lembergb26b3142006-12-09 20:01:43 +000014742006-12-09 Werner Lemberg <wl@gnu.org>
1475
1476 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1477 or `type'.
1478
1479 * builds/freetype.mk (version): Extracted from freetype.h, using
1480 GNU make's built-in string functions.
1481 (refdoc): Use $(version) instead of static version number.
1482
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000014832006-12-08 Werner Lemberg <wl@gnu.org>
1484
1485 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1486
Werner Lemberg15c29502006-12-09 07:29:54 +000014872006-12-08 Vladimir Volovich <vvv@vsu.ru>
1488
1489 * src/tools/apinames (State): Remove final comma in structure -- xlc
1490 v5 under AIX 4.3 doesn't like this.
1491
David Turnerdbf3b432006-12-07 21:18:09 +000014922006-12-07 David Turner <david@freetype.org>
1493
Werner Lemberg256a3512006-12-08 06:49:33 +00001494 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1495 to the spacing of auto-fitted glyphs. This only impacts rare
1496 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001497
Werner Lemberg11171312006-12-03 09:43:40 +000014982006-12-03 Werner Lemberg <wl@gnu.org>
1499
1500 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1501
Werner Lemberg960ba592006-12-01 08:20:47 +000015022006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001503
Werner Lemberg960ba592006-12-01 08:20:47 +00001504 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1505 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1506 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001507
David Turner80658e52006-11-28 08:09:20 +00001508
Werner Lemberg960ba592006-12-01 08:20:47 +00001509 * include/freetype/ftxf86.h: Fix and extend comment so that it
1510 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001511
Werner Lemberg960ba592006-12-01 08:20:47 +00001512 * include/freetype/ftchapters.h: Add `font_format' section.
1513
1514
1515 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1516 to TOC in index page.
1517
15182006-11-28 David Turner <david@freetype.org>
1519
1520 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1521 trying to render into a zero-width/height bitmap, not an error code.
1522
1523 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1524
1525 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1526 ones instead.
1527
1528 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1529 variable.
David Turner80658e52006-11-28 08:09:20 +00001530
Werner Lemberg8636c292006-11-26 22:28:13 +000015312006-11-26 Pierre Hanser <hanser@club-internet.fr>
1532
1533 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1534
Werner Lemberg960ba592006-12-01 08:20:47 +000015352006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001536
Werner Lemberg960ba592006-12-01 08:20:47 +00001537 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1538 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1539 Add stubs to link the `ftgrid' test program when debugging is
1540 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001541
Werner Lemberg960ba592006-12-01 08:20:47 +000015422006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001543
1544 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001545 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1546
1547 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1548 Emit more sensible information.
1549
1550 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1551
1552 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1553 rounding of blue values.
1554 (af_latin_hints_compute_segments): Hint segment heights.
1555 (af_latin_hints_link_segments): Reduce `len_score' value.
1556 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1557 value and use `height' member for comparisons.
1558 (af_latin_hint_edges): Extend logging message.
1559 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001560
Werner Lemberg91959bf2006-11-22 10:36:55 +000015612006-11-22 Werner Lemberg <wl@gnu.org>
1562
1563 Fix Savannah bug #15553.
1564
1565 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1566 program after a change from mono to grayscaling (and vice versa).
1567 Use correct constant for comparison to get `exec->grayscale'.
1568
Werner Lemberg913a3652006-11-19 09:19:17 +000015692006-11-18 Werner Lemberg <wl@gnu.org>
1570
1571 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001572 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001573 This patch fixes Savannah bug #18301.
1574
1575 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1576 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1577 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1578 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1579 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1580 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1581 (FNT_Load_Glyph): Check validity of `glyph_index'.
1582
David Turner7bab6ae2006-11-13 11:25:06 +000015832006-11-13 David Turner <david@freetype.org>
1584
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001585 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1586 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001587
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001588 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1589 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1590 when building the library to change the default LCD filter to be
1591 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001592
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001593 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001594
David Turner8765c712006-11-10 16:49:42 +000015952006-11-10 David Turner <david@freetype.org>
1596
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001597 * src/smooth/ftsmooth.c: API change for the LCD
1598 filter. The FT_LcdFilter value is an enumeration describing which
1599 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1600 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1601 algorithm which produces strong color fringes for everything
1602 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001603
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001604 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1605 second parameter to an enum type.
1606
1607 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1608 (_ft_lcd_filter): Rename to...
1609 (_ft_lcd_filter_fir): This.
1610 Update parameters.
1611 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1612 (FT_Library_Set_LcdFilter): Update parameters.
1613 Handle new filter modes.
1614
1615 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1616 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1617 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1618 callback and update other fields.
1619
1620 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1621 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1622 Other minor improvements.
1623
1624 * src/autofit/aflatin.c: Various tiny improvements that drastically
1625 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1626 (af_latin_hints_compute_edges): Fix typo.
1627 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001628
David Turner4e9cc3c2006-11-09 16:31:52 +000016292006-11-09 David Turner <david@freetype.org>
1630
Werner Lemberg49c77a82006-11-09 21:51:57 +00001631 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1632 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001633
Werner Lemberg5e430892006-11-07 09:35:03 +000016342006-11-07 Zhe Su <james.su@gmail.com>
1635
1636 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1637 also.
1638
Werner Lemberg111b5ae2006-11-03 09:40:12 +000016392006-11-03 Werner Lemberg <wl@gnu.org>
1640
1641 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1642
David Turner40604742006-11-02 16:37:35 +000016432006-11-02 David Turner <david@freetype.org>
1644
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001645 Add a few tweaks to better handle serif fonts.
1646 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001647
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001648 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1649 segments that are less than 1.5 pixels high. This gets rid of
1650 *many* corner cases with serifs.
1651 (af_latin_align_linked_edge): Add logging message.
1652 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1653 Add logging messages.
1654 Handle AF_EDGE_FLAG flag specially.
1655
1656 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1657 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1658
1659 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1660 Update external declarations.
1661 (af_corner_orientation, af_corner_is_flat): Replaced by...
1662
1663 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1664 ft_corner_is_flat): These declarations.
1665
1666 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1667 Comment out. Replaced by...
1668
1669 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1670 These functions. Update all callers.
1671 (FT_Add64) [!FT_LONG64]: Simplify.
1672
1673 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1674 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1675 production of garbage by missing lots of segments.
1676
1677 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1678
1679 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1680 [AF_DEBUG]: Set _af_debug_hints.
1681
1682
1683 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1684 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1685 and ft_corner_orientation.
1686
1687
1688 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001689
Werner Lemberge88c5262006-10-24 05:46:26 +000016902006-10-24 Werner Lemberg <wl@gnu.org>
1691
1692 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1693
1694 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1695 as argument.
1696
David Turnera1861392006-10-23 16:00:59 +000016972006-10-23 Zhe Su <zsu@novell.com>
1698
Werner Lemberg715e96e2006-10-24 05:28:45 +00001699 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1700 better deal with broken Asian fonts with strange glyphs, having
1701 self-intersections and other peculiarities. The used algorithm is
1702 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001703
David Turnere140f142006-10-23 08:56:57 +000017042006-10-23 David Turner <david@freetype.org>
1705
Werner Lemberg715e96e2006-10-24 05:28:45 +00001706 Speed up the CFF font loader. With some large CFF fonts,
1707 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001708
Werner Lemberg715e96e2006-10-24 05:28:45 +00001709 * src/cff/cffload.c (cff_get_offset): Removed.
1710 (cff_new_index): Inline functionality of `cff_get_offset'.
1711 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1712 (cff_charset_done): Call `cff_charset_free_cids'.
1713 (cff_charset_load): Call `cff_charset_compute_cids'.
1714 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1715
1716 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1717 with FT_NEXT_XXX.
1718
1719
1720 Speed up the Postscript hinter, with more than 100% speed increase
1721 on my machine.
1722
1723 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1724 psh_corner_orientation): New functions.
1725 (psh_glyph_compute_inflections): Merge loops for efficiency.
1726 Use `psh_corner_orientation'.
1727 (psh_glyph_init): Use `psh_corner_is_flat'.
1728 (psh_hint_table_find_strong_point): Renamed to...
1729 (psh_hint_table_find_strong_points): This.
1730 Rewrite, adding argument to handle all points at once.
1731 Update all callers.
1732 (PSH_MAX_STRONG_INTERNAL): New macro.
1733 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001734
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000017352006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1736
1737 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001738 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001739
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000017402006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1741
1742 * docs/INSTALL.CROSS: New document file for cross-building.
1743
1744 * builds/unix/configure.raw: Preliminary cross-building support.
1745 Find native C compiler and pass it by CC_BUILD, and
1746 find suffix for native executable and pass it by EXEEXT_BUILD.
1747 Also suffix for target executable is passed by EXEEXT.
1748
Werner Lembergb9e6d692006-10-15 08:58:40 +00001749 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1750 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001751 CC_BUILD and EXEEXT_BUILD.
1752
Werner Lembergb9e6d692006-10-15 08:58:40 +00001753 * builds/exports.mk (APINAMES_EXE): Change the extension for
1754 apinames from the suffix for target (E) to that for building host
1755 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001756
Werner Lemberg82a07e92006-10-12 06:20:44 +000017572006-10-12 Werner Lemberg <wl@gnu.org>
1758
1759 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1760 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1761 which reference those files.
1762
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000017632006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1764
Werner Lembergb9e6d692006-10-15 08:58:40 +00001765 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1766 embedded in freetype2.pc and freetype-config. Use it to record
1767 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001768
1769 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1770
1771 * builds/unix/freetype-config.in: Ditto.
1772
Werner Lemberg28e17d92006-10-11 17:27:47 +000017732006-10-11 Werner Lemberg <wl@gnu.org>
1774
1775 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1776 development.
1777
Jens Claudius336d2292006-10-03 08:53:37 +000017782006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1779
1780 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1781 argument to ft_setjmp.
1782
1783 * include/freetype/internal/ftvalid.h: Add comment that
1784 ft_validator_run must not be used.
1785
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017862006-10-01 Werner Lemberg <wl@gnu.org>
1787
1788 * src/base/ftbase.c: Undo change from 2006-09-30.
1789
1790 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1791
17922006-09-30 David Turner <david@freetype.org>
1793
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001794 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1795 s/unpatented_hinting/ignore_unpatented_hinter/.
1796 Update all callers.
1797
1798 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1799 auto-hinting shall be used or not.
1800
1801 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001802
Werner Lemberg2863cfa2006-10-01 17:04:00 +000018032006-09-30 Werner Lemberg <wl@gnu.org>
1804
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001805 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1806 in use).
1807
1808 * src/base/ftbase.c: Include `ftlcdfil.c'.
1809
Werner Lemberg9b15ea32006-09-29 18:22:11 +000018102006-09-29 Werner Lemberg <wl@gnu.org>
1811
1812 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1813 overlapping segments. Bug reported by Stefan Koch.
1814
David Turnerad830712006-09-27 16:20:59 +000018152006-09-28 David Turner <david@freetype.org>
1816
Werner Lemberg2c002e12006-09-29 21:31:53 +00001817 Fix a bug in the automatic unpatented hinting support which prevents
1818 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001819
Werner Lemberg2c002e12006-09-29 21:31:53 +00001820 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1821 s/force_autohint/unpatented_hinting/. Update all callers.
1822
1823 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1824
1825 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001826
David Turner8a317cf2006-09-27 07:52:48 +000018272006-09-27 David Turner <david@freetype.org>
1828
Werner Lemberg2c002e12006-09-29 21:31:53 +00001829 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001830
David Turner8a317cf2006-09-27 07:52:48 +00001831
David Turnere140f142006-10-23 08:56:57 +00001832 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001833 In a default build, the function `FT_Library_SetLcdFilter' returns
1834 `FT_Err_Unimplemented_Feature'; you need to #define
1835 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1836 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001837
Werner Lemberg2c002e12006-09-29 21:31:53 +00001838 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001839
Werner Lemberg2c002e12006-09-29 21:31:53 +00001840 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1841 typedef.
1842 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1843 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001844
Werner Lemberg2c002e12006-09-29 21:31:53 +00001845 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1846 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001847
Werner Lemberg2c002e12006-09-29 21:31:53 +00001848 Handle subpixel rendering.
1849 Simplify function.
1850 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1851 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1852
1853 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1854 pointing to <freetype/ftlcdfil.h>.
1855
1856 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1857 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1858
1859 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001860
Werner Lemberge20df4a2006-09-27 06:29:21 +000018612006-09-26 David Bustin
1862
1863 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1864 correctly. Reported as Savannah bug #17843.
1865
David Turner6f8c6222006-09-26 15:42:44 +000018662006-09-26 David Turner <david@freetype.org>
1867
Werner Lemberg110246c2006-09-26 21:55:44 +00001868 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1869 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1870 horizontal and vertical hinting for the purpose of debugging the
1871 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001872
Werner Lemberg110246c2006-09-26 21:55:44 +00001873 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1874 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001875
Werner Lemberg110246c2006-09-26 21:55:44 +00001876 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1877
1878 * include/freetype/config/ftoption.h, devel/ftoption.h
1879 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1880 we want to compile LCD-optimized rendering code (à la ClearType) or
1881 not. The macro *must* be disabled in default builds of the library
1882 for patent reasons.
1883
1884 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1885 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1886 isn't defined at compile time. This only changes the content of the
1887 rendered glyph to match the one of normal gray-level rendering,
1888 hence clients should not need to be modified.
1889
1890 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001891
Werner Lemberg745ff2c2006-09-19 05:48:02 +000018922006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1893
1894 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1895 LWFN fails and both are available.
1896
David Turnerf3050052006-09-11 12:00:32 +000018972006-09-11 David Turner <david@freetype.org>
1898
Werner Lembergf9644552006-09-12 13:48:10 +00001899 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1900 report their English names through an Apple Roman
1901 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001902
Werner Lembergf9644552006-09-12 13:48:10 +00001903 If the font uses another name entry with language_id == English, it
1904 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001905
Werner Lembergf9644552006-09-12 13:48:10 +00001906 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1907 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001908
Werner Lemberg36d2eab2006-09-05 19:24:34 +000019092006-09-05 Werner Lemberg <wl@gnu.org>
1910
1911 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001912 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001913 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1914 `HAN NOM B.ttf').
1915
1916 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1917
David Turner772e55d2006-09-05 09:45:15 +000019182006-09-05 David Turner <david@freetype.org>
1919
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001920 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001921
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001922 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1923 (TRaster): Remove `count_ex' and `count_ey'.
1924 (gray_find_cell): Remove 2nd and 3rd argument.
1925 (gray_alloc_cell): Merged with `gray_find_cell'.
1926 (gray_record_cell): Simplify.
1927 (gray_set_cell): Rewrite.
1928 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1929 (gray_render_span): Don't use FT_MEM_SET for small values.
1930 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1931 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1932 bitmap scanline.
1933 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001934
David Turneraa557a92006-09-04 16:42:44 +000019352006-09-04 David Turner <david@freetype.org>
1936
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001937 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1938 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001939
Werner Lemberg2d8629b2006-09-03 06:18:45 +000019402006-09-03 Werner Lemberg <wl@gnu.org>
1941
1942 * devel/ftoption.h: Synchronize with
1943 include/freetype/config/ftoption.h.
1944
1945 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1946 variable declaration.
1947 (gray_convert_glyph): Fix compiler warnings.
1948
David Turner6d79f212006-09-01 14:09:35 +000019492006-09-01 David Turner <david@freetype.org>
1950
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001951 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1952 to recognize a few fonts that require the automatic unpatented
1953 loader.
David Turnerbd502952006-09-01 19:05:24 +00001954
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001955 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1956 rasterizer. The speed improvement is between 15% and 25%, depending
1957 on the font data.
1958
1959 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1960 (TCell): Redefine.
1961 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1962 (gray_init_cells): Updated.
1963 (gray_find_cell, gray_alloc_cell): New functions.
1964 (gray_record_cell): Rewritten to use `gray_find_cell' and
1965 `gray_alloc_cell'.
1966 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1967 QSORT_THRESHOLD):
1968 Removed.
1969 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1970 gray_dump_cells): Removed.
1971 (gray_sweep): Rewritten.
1972 (gray_convert_glyph): Rewrite code which used one of the sorting
1973 functions.
1974 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001975
Werner Lembergd898aed2006-08-29 09:50:34 +000019762006-08-29 Dr. Werner Fink <werner@suse.de>
1977
1978 * configure: Make it possible to handle configure options which
1979 have strings containing spaces.
1980
19812006-08-27 David Turner <david@freetype.org>
1982
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001983 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1984 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1985 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1986
1987 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1988 src/truetype/truetype.c, src/truetype/ttdriver.c,
1989 src/truetype/ttgload.c, src/truetype/ttgload.h,
1990 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1991 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1992 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1993
1994 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1995 member `force_autohint'.
1996
1997 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1998
1999 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
2000 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00002001
Jens Claudiusa787f452006-08-27 11:26:18 +000020022006-08-27 Jens Claudius <jens.claudius@yahoo.com>
2003
2004 Fix miscellaneous compiler warnings.
2005
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002006 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
2007 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00002008
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002009 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
2010 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
2011 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00002012
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002013 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
2014 volatileness of argument to ft_longjmp. Spotted by Werner
2015 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00002016
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002017 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
2018 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00002019
Werner Lemberg2d8629b2006-09-03 06:18:45 +00002020 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
2021 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00002022
Werner Lembergc4c35b72006-08-27 08:03:46 +000020232006-08-27 Werner Lemberg <wl@gnu.org>
2024
2025 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
2026 Reported by Jens.
2027
Jens Claudius088e44e2006-08-22 14:24:30 +000020282006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00002029
Jens Claudius088e44e2006-08-22 14:24:30 +00002030 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00002031 about addresses of volatile objects passed as function arguments as
2032 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00002033
Werner Lembergc4c35b72006-08-27 08:03:46 +00002034 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
2035 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00002036
2037 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
2038 argument `table' a pointer to a volatile object.
2039
2040 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
2041 argument `table' a pointer to a volatile object.
2042
Jens Claudius2652bd52006-08-18 17:20:37 +000020432006-08-18 Jens Claudius <jens.claudius@yahoo.com>
2044
2045 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
2046 variable `_sfnt' as volatile since it must keep its value across
2047 a call to ft_setjmp.
2048 (gxv_validate): Same for local variables `memory' and `valid'.
2049 (classic_kern_validate): Same for local variables `memory',
2050 `ckern', and `valid'.
2051
2052 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
2053 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
2054 `jstf', and 'valid'.
2055
2056 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
2057 local variable `cmap'.
2058
David Turner9fbfc6a2006-08-16 09:11:31 +000020592006-08-16 David Turner <david@freetype.org>
2060
Werner Lemberg12342992006-08-19 11:18:09 +00002061 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
2062 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00002063
Werner Lemberg12342992006-08-19 11:18:09 +00002064 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
2065 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00002066
David Turner33f5f242006-08-16 16:50:55 +00002067
Werner Lemberg12342992006-08-19 11:18:09 +00002068 Improvements to native TrueType hinting. This is a first try,
2069 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
2070
2071 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
2072 `extra_points2'.
2073
2074 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
2075 `orus'.
2076
2077 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
2078 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
2079 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
2080 handle `extra_points2'.
2081
2082 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2083 Remove compiler warning.
2084 (cur_to_arg): Remove macro.
2085 (TT_Hint_Glyph): Updated.
2086 (TT_Process_Simple_Glyph): Handle `orus'.
2087
2088 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2089 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2090 (LOC_Ins_IUP): Renamed to...
2091 (IUP_WorkerRec): This.
2092 Add `orus' member.
2093 (Shift): Renamed to...
2094 (_iup_worker_shift): This.
2095 Updated.
2096 (Interp): Renamed to...
2097 (_iup_worker_interpolate): This.
2098 Updated to handle `orus'.
2099 (Ins_IUP): Updated.
2100
2101 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2102 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00002103
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000021042006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2105
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002106 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00002107 build ftvalid in ft2demos. This has been inadvertedly changed
2108 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002109
21102006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2111
Werner Lemberg12342992006-08-19 11:18:09 +00002112 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2113 Jens:
2114 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002115
Werner Lemberg12342992006-08-19 11:18:09 +00002116 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2117 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002118
2119 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2120
Jens Claudius9950adc2006-08-13 12:14:36 +000021212006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2122
Werner Lemberg12342992006-08-19 11:18:09 +00002123 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2124 T1_TOKEN_TYPE_KEY.
2125 (T1_FieldRec): Add `dict'.
2126 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2127 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2128 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002129
Werner Lemberg12342992006-08-19 11:18:09 +00002130 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2131 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002132
2133 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2134
2135 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002136 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2137 not T1_TOKEN_TYPE_ANY.
2138 (ps_parser_load_field): Make sure a token that should be a string or
2139 name is really a string or name.
2140 Avoid memory leak if a keyword has been already encountered and its
2141 value is overwritten.
2142 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2143 T1_FIELD_XXX.
2144 (parse_dict): Ignore keywords that occur in the wrong dictionary
2145 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002146
Werner Lemberg12342992006-08-19 11:18:09 +00002147 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2148 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002149
Werner Lemberg12342992006-08-19 11:18:09 +00002150 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2151 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002152
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000021532006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2154
2155 Move creation of field `buildchar' of T1_DecoderRec out of
2156 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2157 of it.
2158
2159 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2160 and `T1_Compute_Max_Advance'.
2161
2162 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2163 Remove field `face', add `len_buildchar'.
2164
2165 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2166 field `buildchar'.
2167
2168 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2169 finisher for T1_Decoder.
2170 (cid_slot_load_glyph): Do not ignore failure when initializing the
2171 T1_Decoder.
2172
2173 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2174 Updated.
2175 (t1_decoder_init): Remove initialization of fields `buildchar' and
2176 `len_buildchar'.
2177 (t1_decoder_done): Remove deallocation of field `buildchar'.
2178
2179 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2180 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2181 T1_Decoder.
2182 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2183 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2184 case of error.
2185
2186 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2187 `buildchar' of T1_FaceRec.
2188
2189 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2190 `buildchar' of T1_FaceRec.
2191
Werner Lemberg1a380e02006-07-14 18:28:08 +000021922006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2193
2194 * freetype2/include/freetype/internal/psaux.h: New macros
2195 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2196 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2197 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2198 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2199 (T1_DecoderRec): New fields `buildchar' and `face'.
2200 (IS_PS_TOKEN): New macro.
2201
2202 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2203 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2204
2205 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2206 `default_design_vector' and `num_default_design_vector'.
2207
2208 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2209 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2210 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2211
2212 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2213 `token' argument to be NULL if we want only to count the number of
2214 tokens.
2215 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2216 want to skip the array.
2217 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2218 want to skip the array.
2219
2220 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2221 support for (partially commented out) othersubrs 19-25, 27, and 28.
2222 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2223 (t1_decoder_done): Release new field `buildchar'.
2224
2225 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2226 functions.
2227 (t1_keywords): Register them.
2228 (t1_allocate_blend): Updated.
2229 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2230 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2231 (parse_dict): Remove `keyword_flags' argument.
2232 Use new macro IS_PS_TOKEN.
2233 Changed function so that later PostScript definitions override
2234 earlier ones.
2235 (t1_init_loader): Initialize new field `keywords_encountered'.
2236 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2237 `len_buildchar'.
2238 Remove `keywords_flags'.
2239
2240 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2241 `keywords_encountered'.
2242 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2243
2244 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2245 New entries for parsing /NDV, /CDV, and /DesignVector.
2246
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000022472006-07-07 Werner Lemberg <wl@gnu.org>
2248
2249 Add many checks to protect against malformed PCF files.
2250
2251 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2252 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2253
2254 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2255 data and check that tables don't overlap (using a simple
2256 bubblesort).
2257 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2258 New macros which give the size of data structures in the data
2259 stream.
2260 (pcf_get_properties): Use rough estimates to get array size limits.
2261 Assign `face->nprops' and `face->properties' earlier so that a call
2262 to PCF_Face_Done can do the clean-up in case of error.
2263 Protect against invalid string offsets.
2264 (pcf_get_metrics): Clean up code.
2265 Adjust tracing message levels.
2266 Use rough estimate to get array size limit.
2267 (pcf_get_bitmaps): Clean up code.
2268 Adjust tracing message levels.
2269 Use rough estimates to get offset limits.
2270 (pcf_get_encodings): Adjust tracing message level.
2271 (pcf_get_accel): Clean up code.
2272
Werner Lemberg8eb05252006-06-27 06:20:01 +000022732006-06-26 Werner Lemberg <wl@gnu.org>
2274
2275 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2276 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2277
Werner Lemberg24703f82006-06-26 19:12:51 +000022782006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2279
2280 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2281 (t1_decoder_parse_charstrings): Operator with
2282 opcode 15 pops its two arguments.
2283 Handle the case where the pops of an othersubr may be part of a
2284 subroutine.
2285 Handle unknown othersubrs gracefully: count their operands and let
2286 the following pop operators push the operands as the results onto
2287 the Type1 stack.
2288 Improve handling of setcurrentpoint opcode.
2289
Werner Lembergc011f4c2006-06-26 09:40:00 +000022902006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2291
2292 The Type 1 parser now skips over top-level procedures as required
2293 for a `Simplified Parser'. This makes the parser more robust as it
2294 doesn't poke around in PostScript code. Additionally, it makes the
2295 FontDirectory hackery in src/type1/t1load.c unnecessary.
2296
2297 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2298 (skip_literal_string): Add FT_Error as return value.
2299 Handle escapes better.
2300 (skip_string): Add FT_Error as return value.
2301 Don't set `parser->error' but return error code directly.
2302 (skip_procedure): New function.
2303 (ps_parser_skip_PS_token): Handle procedures.
2304 Update code.
2305 (ps_parser_to_token): Update code.
2306 (ps_parser_load_field_table): Handle bbox entries also.
2307
2308 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2309 Add commented-out code for synthetic fonts.
2310
Werner Lemberga2da05c2006-06-25 06:27:27 +000023112006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2312
2313 Fix two hinting bugs as reported in
2314 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2315
2316 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2317 `first_point' member.
2318
2319 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2320 `first_point'.
2321 (TT_Process_Composite_Glyph): Always untouch points.
2322
2323 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2324 `first_point' and `last_point' in case of composite glyphs.
2325 (Ins_IUP): Fix computation of `end_point'.
2326
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000023272006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2328
Werner Lembergef3d2c22006-06-25 06:07:14 +00002329 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2330 Mac. The original patch was written by David Sachitano and Lawrence
2331 Coopet, and modified by Sean McBride for MPW compatibility. Only
2332 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002333
Werner Lembergef3d2c22006-06-25 06:07:14 +00002334 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2335 Mac OS X platforms.
2336 (OS_INLINE): Undefine before definition.
2337 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2338 FontAssociation table in FOND resource.
2339 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2340 and fontSize at each entry of FontAssociation table in FOND
2341 resource.
2342 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2343 ffStylOff of FamilyRecord header of FOND resource, the header,
2344 fontSize, fontID at each entry of FontAssociation table, and
2345 StyleMapping table.
2346 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002347
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000023482006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2349
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002350 Public API of TrueTypeGX, OpenType, and classic kern table validator
2351 should return `FT_Err_Unimplemented_Feature' if validation service
2352 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002353 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002354 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2355
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002356 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2357 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2358 unavailable.
2359 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2360 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002361
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002362 * src/base/ftotval.c (FT_OpenType_Validate): Return
2363 FT_Err_Unimplemented_Feature if OpenType validation service is
2364 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002365
Werner Lembergb10e45a2006-06-08 07:32:56 +000023662006-06-08 Werner Lemberg <wl@gnu.org>
2367
2368 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2369 errors.
2370
David Turner5f1f7502006-06-07 05:11:50 +000023712006-06-07 David Turner <david@freetype.org>
2372
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002373 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2374 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2375 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002376
David Turner457b4a82006-06-06 08:14:14 +000023772006-06-06 David Turner <david@freetype.org>
2378
Werner Lemberg4836f952006-06-06 12:54:08 +00002379 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002380
Werner Lemberg4836f952006-06-06 12:54:08 +00002381 We change `ps_unicodes_init' so that it also takes a
2382 `free_glyph_name' callback to release the glyph names returned by
2383 `get_glyph_name'
2384
2385 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2386 Renamed to ...
2387 (PS_GetGlyphNameFunc): This.
2388 (PS_FreeGlyphNameFunc): New typedef.
2389 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2390
2391 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2392 argument.
2393 (cff_sid_free_glyph_name): New function.
2394 (cff_cmap_unicode_init): Updated.
2395
2396 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2397
2398 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2399 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002400
2401
David Turner09717352006-06-04 14:33:08 +000024022006-06-04 David Turner <david@freetype.org>
2403
Werner Lembergd724f202006-06-04 15:17:41 +00002404 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2405 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002406 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002407
Werner Lembergd724f202006-06-04 15:17:41 +00002408 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2409 of `face->num_glyphs' which missed the last glyph, due to
2410 the offset-by-1 computation, since the PFR format doesn't
2411 guarantee that glyph index 0 corresponds to the `missing
2412 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002413
Werner Lemberg33779662006-05-26 06:30:05 +000024142006-05-25 Werner Lemberg <wl@gnu.org>
2415
2416 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2417 `-no-undefined'. Reported by Christian Biesinger.
2418
Werner Lemberg24773d62006-05-20 08:53:13 +000024192006-05-19 Brian Weed <bw@imaginengine.com>
2420
2421 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2422 have debug information, and debug libraries use `C7 compatible'
2423 debug info.
2424
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000024252006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2426
Werner Lemberga6523a62006-05-20 08:47:01 +00002427 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002428 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002429
Werner Lemberga6523a62006-05-20 08:47:01 +00002430 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2431 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002432
2433 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002434 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002435
24362006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2437
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002438 * build/unix/configure.raw: Add a fallback to disable Carbon
2439 dependency, if configured with no options on Mac OS X.
2440
24412006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2442
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002443 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002444 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002445 the second part of Savannah bug #16590.
2446
Werner Lemberg545c4e52006-05-17 22:55:04 +000024472006-05-18 Werner Lemberg <wl@gnu.org>
2448
2449 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2450 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2451
David Turnerdc3ff312006-05-17 12:59:35 +000024522006-05-17 David Turner <david@freetype.org>
2453
Werner Lemberg545c4e52006-05-17 22:55:04 +00002454 This is a major patch used to drastically improve the performance of
2455 loading glyphs. This both speeds up loading the glyph vectors
2456 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002457
Werner Lemberg545c4e52006-05-17 22:55:04 +00002458 We now use inline assembler code with GCC to implement `FT_MulFix',
2459 which is probably the most important function related to the
2460 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002461
Werner Lemberg545c4e52006-05-17 22:55:04 +00002462 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002463
2464
Werner Lemberg545c4e52006-05-17 22:55:04 +00002465 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2466 `cursor' and `limit'.
2467
2468 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2469 New functions.
2470 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2471 [TEST]: Remove.
2472
2473 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2474 code.
2475
2476 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2477 `FT_ZERO'
2478 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2479 (af_glyph_hints_reload: Rewrite recognition of weak points.
2480
2481 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2482 constant values out of the loops.
2483
2484 * src/autofit/aftypes.h: Updated.
2485
2486 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2487
2488 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2489 product to get orientation.
2490
2491 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2492 (FT_Stream_OpenGzip): Use it to handle small files directly in
2493 memory.
2494
2495 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2496 Improve performance.
2497
2498 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2499 `limit'.
2500
2501 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2502 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2503 exceedingly large values of number of contours. Speed up by
2504 reducing the number of loops.
2505
2506 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2507
2508
2509 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2510 used to detect rogue clients from 4 to 16. This is to prevent some
2511 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2512 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002513
Werner Lembergde2d90a2006-05-17 08:54:30 +000025142007-05-17 Werner Lemberg <wl@gnu.org>
2515
2516 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002517 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002518
25192006-05-16 Werner Lemberg <wl@gnu.org>
2520
2521 * docs/PROBLEMS: Updated icl issues.
2522
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002523----------------------------------------------------------------------------
2524
Werner Lemberg42b63b22007-01-21 21:01:33 +00002525Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002526David Turner, Robert Wilhelm, and Werner Lemberg.
2527
2528This file is part of the FreeType project, and may only be used, modified,
2529and distributed under the terms of the FreeType project license,
2530LICENSE.TXT. By continuing to use, modify, or distribute this file you
2531indicate that you have read the license and understand and accept it
2532fully.
2533
2534
2535Local Variables:
2536version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002537coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002538End: