blob: 50ef6a7fbe2299b317a68373157ccb5af389028d [file] [log] [blame]
Werner Lemberge12ed562007-06-17 05:31:23 +000012006-06-17 Werner Lemberg <wl@gnu.org>
2
3 * src/tools/ftrandom.c (font_size): New global variable.
4 (TestFace): Use it.
5 (main): Handle new option `--size' to set `font_size'.
6 (Usage): Updated.
7
David Turner6c2ab092007-06-16 16:40:37 +000082006-06-16 David Turner <david@freetype.org>
9
Werner Lemberge12ed562007-06-17 05:31:23 +000010 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
11 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +000012
Werner Lemberge12ed562007-06-17 05:31:23 +000013 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
14 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +000015
Werner Lemberge12ed562007-06-17 05:31:23 +000016 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
17 and `zp2'.
18 (Ins_IP): Check argument ranges to reject bogus operations properly.
19 (IUP_WorkerRec): Add `max_points' member.
20 (_iup_worker_interpolate): Check argument ranges.
21 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +000022
Werner Lembergab1604b2007-06-16 07:59:39 +0000232006-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
24
25 * src/winfonts/winfnt.h: Add necessary structures for PE resource
26 parsing.
27 (WinPE32_HeaderRec): New structure.
28 (WinPE32_SectionRec): New structure.
29 (WinPE_RsrcDirRec): New structure.
30 (WinPE_RsrcDirEntryRec): New structure.
31 (WinPE_RsrcDataEntryRec): New structure.
32 (FNT_FontRec): Remove unused `size_shift' field.
33
34 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
35 loading bitmap .fon files in PE format.
36
Werner Lemberg08a645d2007-06-15 14:05:20 +0000372006-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
38
39 * builds/win32/ftdebug.c: Unify debug level handling with other
40 platforms.
41
Werner Lemberg367f3012007-06-14 06:56:52 +0000422006-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
43
44 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
45 console as well as to the debugger.
46
Werner Lemberg46dde492007-06-14 03:59:02 +0000472006-06-14 Werner Lemberg <wl@gnu.org>
48
49 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
50 cover all ranges which could possibly be handled by the aflatin
51 module (since the default fallback for unknown ranges is now the
52 afcjk module). It might be necessary to fine-tune this further by
53 splitting off modules for Greek, Cyrillic, or other blocks.
54
David Turnerb7920172007-06-11 05:37:35 +0000552007-06-11 David Turner <david@freetype.org>
56
Werner Lemberg49e18b82007-06-11 21:15:09 +000057 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
58 incorrect segment linking computation. This was the root cause of
59 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +000060
61
Werner Lemberg49e18b82007-06-11 21:15:09 +000062 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
63 to improve the Latin auto-hinter. Note that the new code is
64 disabled by default since it is not stabilized yet.
65
66 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
67 (disabled currently).
68
69 * src/autofit/afhints.c: Remove dead code.
70 (af_axis_hints_new_edge): Add argument to handle segment directions.
71 (af_edge_flags_to_string): New function.
72 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
73 option flags.
74 (af_glyph_hints_reload): Add argument to handle inflections.
75 Simplify.
76 (af_direction_compute): Fine tuning.
77 (af_glyph_hints_align_edge_points): Fix logic.
78 (af_glyph_hints_align_strong_points): Do linear search for small
79 edge counts.
80 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
81 (af_iup_shift): Handle zero `delta'.
82
83 * src/autofit/afhints.h: Updated.
84 (AF_SORT_SEGMENTS): New macro (disabled).
85 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
86
87 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
88 argument to pass option flags for handling scripts.
89 * src/autofit/afglobal.h: Updated.
90
91 * src/autofit/afcjk.c: Updated.
92 * src/autofit/aflatin.c: Updated.
93 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
94
95 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
96 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
97 Don't set `edge->dir'
98 (af_latin_hint_edges): Add more logging.
99
100 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000101
Werner Lembergf6c120f2007-06-11 04:55:58 +00001022007-06-11 Werner Lemberg <wl@gnu.org>
103
Werner Lembergcf7b7642007-06-11 04:58:01 +0000104 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000105
David Turner84c6f882007-06-10 20:51:04 +00001062007-06-10 David Turner <david@freetype.org>
107
Werner Lembergf6c120f2007-06-11 04:55:58 +0000108 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
109 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000110
Werner Lembergf6c120f2007-06-11 04:55:58 +0000111 * include/freetype/config/ftoption.h: Clarify documentation
112 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000113
Werner Lembergf6c120f2007-06-11 04:55:58 +0000114
115 Add new `FT_Face_CheckTrueTypePatents' API.
116
117 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
118 declaration.
119
120 * include/freetype/internal/services/svttglyf.h,
121 src/base/ftpatent.c: New files.
122
123 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
124 New macro.
125
126 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
127 `ttpload.h'.
128 (tt_service_truetype_glyf): New service structure.
129 (tt_services): Register it.
130
131 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
132 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000133
Werner Lemberg33db39e2007-06-08 06:30:29 +00001342007-06-08 Werner Lemberg <wl@gnu.org>
135
David Turner84c6f882007-06-10 20:51:04 +0000136 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000137 Fonts without a cmap must be handled correctly by FreeType (anything
138 else would be a bug).
139
140
141 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
142 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
143
Werner Lemberg88ab6382007-06-07 05:01:56 +00001442007-06-07 Werner Lemberg <wl@gnu.org>
145
146 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
147 tt_sbit_decoder_load_image): Protect against integer overflows.
148
149
150 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
151 for `x_control' and `y_control'.
152
Werner Lemberg2a2dca62007-06-06 04:39:37 +00001532007-06-06 Werner Lemberg <wl@gnu.org>
154
155 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
156
Werner Lemberga8d65492007-06-06 04:47:49 +0000157
158 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
159 FreeType error.
160
Werner Lemberg470210b2007-06-06 10:05:49 +0000161
162 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
163 `font_count'.
164
165
166 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
167
168
169 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
170 `FT_Error'.
171 Check `fd_index'.
172 (cff_slot_load): Updated.
173 * src/cff/cffgload.h: Updated.
174
Werner Lemberg6c054752007-06-05 05:27:54 +00001752007-06-05 Werner Lemberg <wl@gnu.org>
176
177 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
178 (pfr_glyph_load_simple): Convert assertion into normal FreeType
179 error.
180 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000181 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
182 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000183
184 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
185
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000186
Werner Lemberg470210b2007-06-06 10:05:49 +0000187 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000188
Werner Lemberge5c14d92007-06-05 20:50:37 +0000189
190 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
191 in case of parsing error.
192 (ps_parser_load_field): Updated.
193
194 * src/type1/t1load.c (parse_font_matrix): Updated.
195
Werner Lembergad18b362007-06-04 07:04:05 +00001962007-06-04 Werner Lemberg <wl@gnu.org>
197
198 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
199
200 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
201
Werner Lemberg3d507fe2007-06-03 16:54:55 +00002022007-06-03 Werner Lemberg <wl@gnu.org>
203
Werner Lemberg99a320b2007-06-03 19:21:26 +0000204 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
205 George Williams (with some modifications).
206
2072007-06-03 Werner Lemberg <wl@gnu.org>
208
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000209 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
210 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
211 face == NULL. Suggested by Graham Asher.
212
Werner Lembergce280a22007-06-03 05:58:30 +00002132007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
214
215 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
216
Werner Lemberg5b591e42007-06-01 22:16:43 +00002172007-06-02 Werner Lemberg <wl@gnu.org>
218
219 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
220 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
221
222 * src/bdf/bdflib.c (bdf_load_font): Use them.
223
224 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
225
Werner Lembergb9933f42007-06-01 21:27:12 +00002262007-06-01 Werner Lemberg <wl@gnu.org>
227
228 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
229 (FTC_CMapCache_Lookup): Remove unused code.
230
Werner Lembergc793d902007-06-01 20:51:11 +00002312007-06-01 Sean McBride <sean@rogue-research.com>
232
233 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
234 unused.
235
Werner Lembergbebc7b12007-06-01 06:32:30 +00002362007-06-01 Werner Lemberg <wl@gnu.org>
237
238 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
239 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000240 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000241
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000242 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
243 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
244
Werner Lembergba03af62007-05-30 13:57:02 +00002452007-05-30 Werner Lemberg <wl@gnu.org>
246
247 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
248 against too small binary data strings.
249
250 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
251
David Turnerf0cd69c2007-05-28 15:42:09 +00002522007-05-28 David Turner <david@freetype.org>
253
Werner Lemberg99e0c182007-05-29 07:00:23 +0000254 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
255 transformation. This significantly reduces the loading time of CFF
256 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000257
Werner Lemberg99e0c182007-05-29 07:00:23 +0000258 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000259
Werner Lemberg99e0c182007-05-29 07:00:23 +0000260 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
261 hinting script to CJK, since it works well with more scripts than
262 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
263 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000264
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002652007-05-25 Werner Lemberg <wl@gnu.org>
266
267 * docs/CHANGES: Updated.
268
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00002692007-05-24 Werner Lemberg <wl@gnu.org>
270
271 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
272 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
273
2742007-05-24 Graham Asher <graham.asher@btinternet.com>
275
276 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
277 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
278
David Turner0d0365e2007-05-22 09:53:44 +00002792007-05-22 David Turner <david@freetype.org>
280
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000281 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
282 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000283
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000284
285 Avoid heap blowup with very large .Z font files. This fixes
286 Savannah bug #19910.
287
288 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
289 `in_limit', `pad', `pad_bits', and `in_buff' members.
290 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
291 `buf_total' members.
292
293 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
294 only one argument.
295 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000296
2972007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000298
299 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
300 (ps_dimension_set_mask_bits): Remove `const'.
301
David Turner0d0365e2007-05-22 09:53:44 +00003022007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000303
304 * src/sfnt/ttmtx.c (tt_face_get_metrics)
305 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
306
Werner Lembergb826fa72007-05-19 07:18:48 +00003072007-05-19 Derek Clegg <dclegg@apple.com>
308
309 Savannah patch #5929.
310
311 * include/freetype/tttables.h, src/base/ftobjcs.c
312 (FT_Get_CMap_Format): New function.
313
314 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
315 `format' member.
316 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
317 cmap_info->format.
318
Werner Lemberg6f99c882007-05-19 07:01:49 +00003192007-05-19 Werner Lemberg <wl@gnu.org>
320
321 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
322 before handling subglyphs so that it can be reinitialized each time.
323 This fixes Savannah bug #19859.
324
Werner Lemberg95bc9d32007-05-16 15:19:42 +00003252007-05-16 Werner Lemberg <wl@gnu.org>
326
327 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
328 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
329 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
330 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
331 tt_face_get_metrics): Fix type-punning issues.
332
David Turner0a24bd22007-05-15 10:54:10 +00003332007-05-15 David Turner <david@freetype.org>
334
335 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000336 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
337 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000338 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000339 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000340
Werner Lemberg607dec72007-05-15 06:49:37 +00003412007-05-15 Graham Asher <graham.asher@btinternet.com>
342
343 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
344 variable.
345 * src/autofit/afloader.c (af_loader_load_g): Ditto.
346
347 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
348 (open_face_from_buffer): Initialize `stream'.
349 (FT_Request_Metrics): Remove unused variable.
350 Remove redundant `break' statements.
351 (FT_Get_Track_Kerning): Remove unused variable.
352
353 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
354 afm_parse_kern_data): Remove redundant
355 `break' statements.
356 (afm_parser_parse): Ditto.
357 Don't use uninitialized variables.
358
359 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
360 Use `|' operator instead of `^' to set it.
361 Update all users.
362
363 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
364 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
365
366 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
367 comparison.
368 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
369 (TT_Load_Glyph): Remove unused variable.
370
Werner Lemberg8d463a52007-05-13 16:01:55 +00003712007-05-13 Derek Clegg <dclegg@apple.com>
372
373 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
374 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
375
David Turner711cf842007-05-11 14:36:24 +00003762007-05-11 David Turner <david@freetype.org>
377
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000378 * src/cache/ftbasic.c, include/freetype/ftcache.h
379 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
380 functions that allow us to look up glyphs using an FTC_Scaler object
381 to specify the size, making it possible to use fractional pixel
382 sizes.
383
384 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
385 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000386
Werner Lemberg94be20e2007-05-09 20:02:55 +00003872007-05-09 Graham Asher <graham.asher@btinternet.com>
388
389 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
390 (af_latin_metrics_scale_dim): Fix compiler warnings.
391
Werner Lemberg41271032007-05-06 04:51:48 +00003922007-05-06 Werner Lemberg <wl@gnu.org>
393
394 * builds/win32/visualce/freetype.sln: Removed, as requested by
395 Vincent.
396
Werner Lembergdf49e692007-05-04 06:30:05 +00003972007-05-04 Vincent RICHOMME <richom.v@free.fr>
398
399 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
400 PC targets.
401
402 * docs/CHANGES: Document them.
403
4042007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000405
406 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
407 mmap (which might happen on some RTOS). From Savannah patch #5909.
408
Werner Lemberg106eaf12007-05-03 07:07:47 +00004092007-05-03 Werner Lemberg <wl@gnu.org>
410
411 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
412 * include/freetype/freetype.h (FT_Set_Char_Size): Update
413 documentation.
414
Werner Lemberg1b5267d2007-04-28 21:06:15 +00004152007-04-28 Victor Stinner <victor.stinner@inl.fr>
416
417 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
418 `cmap'.
419
Werner Lembergcc712a22007-04-27 17:16:50 +00004202007-04-27 Werner Lemberg <wl@gnu.org>
421
422 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
423 number of points in contours. Problem reported by Victor Stinner
424 <victor.stinner@haypocalc.com>.
425 (TT_Process_Simple_Glyph): Synchronize variable types.
426
Werner Lemberg45bb18f2007-04-26 06:26:35 +00004272007-04-26 Werner Lemberg <wl@gnu.org>
428
429 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
430 zero in case of error. This fixes Savannah bug #19689.
431
David Turnera8b45e62007-05-11 14:10:30 +00004322007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
433
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000434 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
435 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000436
Werner Lembergfcc1f472007-04-10 11:51:50 +00004372007-04-10 Martin Horak <horakm@centrum.cz>
438
439 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
440 Ignore `hhea' table. This fixes Savannah bug #19261.
441
Werner Lemberg14bf82e2007-04-10 04:09:49 +00004422007-04-09 Werner Lemberg <wl@gnu.org>
443
444 * Version 2.3.4 released.
445 =========================
446
447
448 Tag sources with `VER-2-3-4'.
449
450 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
451 version number to 2.3.4.
452
453 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
454 builds/win32/visualc/freetype.dsp,
455 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
456
457 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
458
459 * builds/unix/configure.raw (version_info): Set to 9:15:3.
460
Werner Lembergf4a52a62007-04-09 08:40:11 +00004612007-04-09 Martin Horak <horakm@centrum.cz>
462
463 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
464 memory stream to avoid a crash with the incremental memory
465 interface (Savannah bug #19260).
466
David Turner1dcb4442007-04-06 08:19:04 +00004672007-04-06 David Turner <david@freetype.org>
468
Werner Lembergc81cf612007-04-06 09:28:23 +0000469 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
470 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000471
Werner Lemberg9f83e052007-04-05 02:28:23 +00004722007-04-04 Werner Lemberg <wl@gnu.org>
473
474 * Version 2.3.3 released.
475 =========================
476
477
478 Tag sources with `VER-2-3-3'.
479
480 * docs/CHANGES: Mention CVE-2007-1351.
481
David Turner7338ec22007-04-03 14:30:34 +00004822007-04-03 David Turner <david@freetype.org>
483
484 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000485 if one of the resolution values is 0, treat it as if it were the
486 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000487
David Turnere6472c12007-04-02 13:13:54 +00004882007-04-02 David Turner <david@freetype.org>
489
Werner Lemberg94f12272007-04-03 07:19:53 +0000490 Add special code to detect `extra-light' fonts and do not snap their
491 stem widths too much to avoid bizarre hinting effects.
492
493 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
494 `extra_light' members.
495
496 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
497 them.
498 (af_latin_metrics_scale_dim): Set `extra_light'.
499 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000500
David Turner3f539692007-03-28 14:53:40 +00005012007-03-28 David Turner <david@freetype.org>
502
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000503 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000504 padding.
505
Werner Lemberga08b2172007-03-28 07:17:17 +00005062007-03-28 Werner Lemberg <wl@gnu.org>
507
508 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
509 gracefully.
510 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000511 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000512 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
513 number of code points in Unicode.
514
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000515 * builds/win32/visualc/index.html,
516 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000517 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000518 s/232/233/.
519
520 * docs/CHANGES: Mention ftdiff.
521
David Turner3b242d32007-03-26 12:03:04 +00005222007-03-26 David Turner <david@freetype.org>
523
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000524 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
525 corresponding code.
526 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000527
Werner Lemberga08b2172007-03-28 07:17:17 +0000528 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000529 computations in order to ignore single-point contours. These are
530 never rasterized and correspond in certain fonts to mark-attach
531 points that are very far from the glyph's real outline, ruining the
532 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000533
Werner Lemberga08b2172007-03-28 07:17:17 +0000534 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000535 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000536 Otherwise code that uses them will most certainly ruin the fixed
537 advance property.
David Turner23553d62007-03-26 13:37:17 +0000538
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000539 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
540 documentation and bump version number to 2.3.3.
541
542 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
543
544 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000545
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00005462007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
547
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000548 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
549 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000550 * builds/vms/ftconfig.h: Ditto.
551 * include/freetype/config/ftconfig.h: Ditto.
552
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00005532007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
554
Werner Lemberg14ffe092007-03-22 06:12:43 +0000555 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
556 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000557 proposed by Sean McBride:
558 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
559
5602007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
561
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000562 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
563 setjmp, proposed by Sean McBride:
564 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
565
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00005662007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
567
Werner Lembergc9f6c662007-03-21 13:30:14 +0000568 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
569 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
570 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000571
David Turner74c34eb2007-03-18 07:19:31 +00005722007-03-18 David Turner <david@freetype.org>
573
Werner Lembergc9f6c662007-03-21 13:30:14 +0000574 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
575 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000576
Werner Lembergc9f6c662007-03-21 13:30:14 +0000577 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000578
David Turner89020d92007-03-17 17:48:57 +00005792007-03-17 David Turner <david@freetype.org>
580
Werner Lembergc9f6c662007-03-21 13:30:14 +0000581 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
582 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000583
Werner Lemberg25d592a2007-03-09 07:59:35 +00005842007-03-09 Werner Lemberg <wl@gnu.org>
585
586 * Version 2.3.2 released.
587 =========================
588
589
590 Tag sources with `VER-2-3-2'.
591
592 * builds/win32/visualc/index.html,
593 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000594 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000595 s/231/232/.
596
David Turner3a51afa2007-03-08 10:50:38 +00005972007-03-08 David Turner <david@freetype.org>
598
Werner Lemberg25d592a2007-03-09 07:59:35 +0000599 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000600
Werner Lemberg25d592a2007-03-09 07:59:35 +0000601 * builds/unix/configure.raw (version_info): Set to 9:13:3.
602
603 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
604
605 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000606
Werner Lemberg1e259de2007-03-08 15:39:21 +0000607 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
608 function to work properly, over-writing user-provided buffers in
609 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000610
David Turner121cad52007-03-08 16:43:50 +0000611
Werner Lemberg3d92f082007-03-06 11:59:24 +00006122007-03-05 Werner Lemberg <wl@gnu.org>
613
614 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
615 macro for `strstr'.
616
617 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
618 `trick_names', as suggested by Ivan Nincic.
619
David Turner085bc6e2007-03-05 17:40:03 +00006202007-03-05 David Turner <david@freetype.org>
621
Werner Lembergd112cf02007-03-06 12:06:56 +0000622 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
623 case FT_Init_FreeType fails for some reason. Problem reported by
624 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000625
Werner Lembergd112cf02007-03-06 12:06:56 +0000626 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
627 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
628 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
629 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000630
Werner Lembergd112cf02007-03-06 12:06:56 +0000631 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
632 signed values, not unsigned ones. Problem reported by Johannes
633 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000634
David Turner601aefe2007-02-21 16:47:49 +00006352007-02-21 David Turner <david@freetype.org>
636
Werner Lembergde5e6862007-02-25 21:06:43 +0000637 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
638 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000639
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00006402007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
641
642 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
643 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
644 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
645
Werner Lemberga0915172007-02-16 08:12:50 +00006462007-02-16 Werner Lemberg <wl@gnu.org>
647
648 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
649 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
650
David Turner2c4500e2007-02-14 15:08:47 +00006512007-02-14 David Turner <david@freetype.org>
652
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000653 It seems that the following changes fix most of the known
654 interpreter problems with my fonts, but more testing is needed,
655 though.
656
657 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
658 (TT_MulFix14): Rewrite.
659 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
660 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000661
Werner Lembergc6a14082007-02-12 22:08:15 +00006622007-02-12 Werner Lemberg <wl@gnu.org>
663
664 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
665 warnings.
666
667 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
668 (bdf_interpret_style): Ditto.
669
David Turnerc0f9c4a2007-02-12 14:55:03 +00006702007-02-12 David Turner <david@freetype.org>
671
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000672 Simplify projection and dual-projection code interface.
673
Werner Lemberg406d25f2007-02-12 22:01:18 +0000674 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
675 FT_Vector' as argument type.
676 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
677 Updated.
678 (CUR_fast_project, CUR_fast_dualproj): New macros.
679 (Project, Dual_Project, Project_x, Project_y): Updated.
680 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
681 macros.
682
683
684 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
685 adjustments for the non-light auto-hinted modes. Gets rid of
686 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000687
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000688 * src/autofit/aflatin.c (af_latin_hints_link_segments,
689 af_latin_hints_compute_edges): Slight optimization of the segment
690 linker and better handling of serif segments to get rid of broken
691 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000692
David Turnerc0f9c4a2007-02-12 14:55:03 +0000693
Werner Lemberg442bfb82007-02-12 21:44:10 +0000694 Introduce new string functions and the corresponding macros to get
695 rid of various uses of strcpy and other `evil' functions, as well as
696 to simplify a few things.
697
698 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
699 ft_mem_strcpyn): New declarations.
700 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
701 macros.
702 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
703 functions.
704
705 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
706 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
707 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
708 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
709 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
710 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
711 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
712 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000713
Werner Lemberg406d25f2007-02-12 22:01:18 +0000714 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
715
Werner Lemberg582067d2007-02-11 15:03:05 +00007162007-02-11 Werner Lemberg <wl@gnu.org>
717
718 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
719 non-spacing glyphs.
720
Werner Lemberg8f474532007-02-07 08:31:01 +00007212007-02-07 Tom Parker <palfrey@tevp.net>
722
723 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
724 pointer.
725
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007262007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
727
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000728 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
729 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000730 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000731 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
732 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
733 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
734 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000735
736 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
737 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000738 * builds/mac/ftmac.c: Ditto.
739
7402007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
741
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000742 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000743 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000744 #include <ftmac.c>.
745
7462007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
747
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000748 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
749 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
750 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
751 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
752 FT_GetFilePath_From_Mac_ATS_Name.
753 * builds/mac/ftmac.c: Ditto.
754
7552007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
756
Werner Lembergdcbb7082007-02-08 08:54:09 +0000757 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000758 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
759 for passing to FT_New_Face_From_FSSpec.
760
7612007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
762
Werner Lembergdcbb7082007-02-08 08:54:09 +0000763 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000764 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000765
766 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
767 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000768 * builds/mac/ftmac.c (OS_INLINE): Ditto.
769
Werner Lemberg313d7772007-02-01 08:10:45 +00007702007-02-01 Werner Lemberg <wl@gnu.org>
771
772 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
773 Explain why applications shouldn't use it. Found by Alexei.
774
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007752007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000776
777 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
778 message.
779
780 * src/gxvalid/gxvmort1.c
781 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
782 message.
783
Werner Lemberg53935932007-01-31 08:53:02 +00007842007-01-31 Werner Lemberg <wl@gnu.org>
785
786
787 * Version 2.3.1 released.
788 =========================
789
790
791 Tag sources with `VER-2-3-1-FINAL'.
792
793 * builds/win32/visualc/freetype.dsp,
794 builds/win32/visualc/freetype.vcproj: s/230/231/.
795 * builds/win32/visualc/index.html: s/221/231/.
796
797 * vms_make.com: Add `ftgasp'.
798
David Turnera7ee6082007-01-30 10:33:53 +00007992007-01-30 David Turner <david@freetype.org>
800
Werner Lemberg53935932007-01-31 08:53:02 +0000801 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000802
Werner Lemberg53935932007-01-31 08:53:02 +0000803 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000804
Werner Lemberg25d592a2007-03-09 07:59:35 +0000805 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000806 s/2.3.0/2.3.1/.
807
808 * builds/unix/configure.raw (version_info): Set to 9:12:3.
809
810
811 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
812 (af_loader_load_g): Disable the warper (i.e., the light hinting
813 improvements) to make a 2.3.1 bugfix release before introducing a
814 new feature. This should give us more time to tune and improve the
815 warper for the next release.
816
817 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000818
David Turnerd91eebd2007-01-26 15:05:41 +00008192007-01-25 David Turner <david@freetype.org>
820
Werner Lembergbf241762007-01-26 16:08:49 +0000821 For light auto-hinting, improve glyph advance widths and resurrect
822 normal/full hinting to its normal quality.
823
824 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
825 and `xmax_delta'.
826 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
827 and `xmax_delta'.
828
829 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
830 preprocessor conditional with if-clause, handling both light and
831 normal mode.
832
833 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
834 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000835
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00008362007-01-25 Werner Lemberg <wl@gnu.org>
837
838 * docs/release: Updated -- Savannah uses a new uploading scheme.
839
David Turnera42567b2007-01-25 12:23:37 +00008402007-01-25 David Turner <david@freetype.org>
841
Werner Lembergd7855662007-01-25 13:53:56 +0000842 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000843
Werner Lembergd7855662007-01-25 13:53:56 +0000844 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
845 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
846 functions.
David Turnera42567b2007-01-25 12:23:37 +0000847
Werner Lembergd7855662007-01-25 13:53:56 +0000848 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000849
Werner Lembergb1be9e82007-01-25 11:50:00 +00008502007-01-25 Werner Lemberg <wl@gnu.org>
851
852 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000853 correctly in a sanity check. Since this function is only used to
854 load local and global functions, any charstring that called the last
855 local/global function would fail otherwise. This fixes Savannah bug
856 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000857
858 * docs/CHANGES: Document it.
859
David Turnerb6de8d12007-01-23 15:51:50 +00008602007-01-23 David Turner <david@freetype.org>
861
Werner Lembergb1be9e82007-01-25 11:50:00 +0000862 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
863 prevented compilation when disabling both the unpatented and the
864 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000865
Werner Lembergb1be9e82007-01-25 11:50:00 +0000866
867 Fix and enable the warper to improve `light' hinting mode. This is
868 not necessarily a final version, but it seems to work well.
869
870 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
871 Disable code.
872 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
873 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
874
875 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
876 (af_warper_compute_line_best): Fix array size of `scores'.
877 (af_warper_compute): Better handling of border cases.
878 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
879 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000880
Werner Lemberg011d1112007-01-21 09:36:00 +00008812007-01-21 Werner Lemberg <wl@gnu.org>
882
Werner Lemberg42b63b22007-01-21 21:01:33 +0000883 * ChangeLog: Split off older entries into...
884 * ChangeLog.22: This new file.
885
8862007-01-21 Werner Lemberg <wl@gnu.org>
887
Werner Lemberg555258f2007-01-21 09:46:37 +0000888 * docs/CHANGES: Document SHZ fix.
889
8902007-01-21 George Williams <gww@silcom.com>
891
892 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
893 points.
894
8952007-01-21 Werner Lemberg <wl@gnu.org>
896
Werner Lemberg011d1112007-01-21 09:36:00 +0000897 * src/sfnt/ttmtx.c (tt_face_get_metrics)
898 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
899
Werner Lemberg87a5a432007-01-17 12:44:39 +00009002007-01-17 Werner Lemberg <wl@gnu.org>
901
Werner Lembergb8003292007-01-17 12:56:25 +0000902
903 * Version 2.3.0 released.
904 =========================
905
906
907 Tag sources with `VER-2-3-0-FINAL'.
908
9092007-01-17 Werner Lemberg <wl@gnu.org>
910
Werner Lemberg87a5a432007-01-17 12:44:39 +0000911 * docs/release: Updated.
912
David Turner22122722007-01-16 20:06:44 +00009132007-01-16 David Turner <david@freetype.org>
914
Werner Lemberg87a5a432007-01-17 12:44:39 +0000915 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
916 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
917 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
918 warnings.
David Turner22122722007-01-16 20:06:44 +0000919
Werner Lemberg267e1d72007-01-15 07:48:09 +00009202007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
921
922 * builds/amiga/makefile, builds/amiga/makefile.os4,
923 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
924
925 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
926
Werner Lemberg8c4120d2007-01-15 06:42:40 +00009272007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
928
929 Fix various compiler warnings.
930
931 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
932 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
933 s/index/strike_index/.
934 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
935
936 * src/gxvalid/gxvmorx5.c
937 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
938
939 * src/truetype/ttinterp.c (Compute_Point_Displacement),
940 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
941 uninitialized variables.
942
Werner Lemberg6164a9d2007-01-13 23:01:36 +00009432007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
944
945 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
946
Werner Lemberg281c1482007-01-13 22:50:51 +00009472007-01-13 Werner Lemberg <wl@gnu.org>
948
949 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
950 versions up to 0x3FF without complaining.
951
Werner Lembergac250b22007-01-13 14:01:36 +00009522007-01-13 Derek Clegg <dclegg@apple.com>
953
954 Add FT_Get_PS_Font_Info interface to CFF driver.
955
956 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
957 (CFF_FontRec): Add `font_info' field.
958
959 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
960 (cff_font_done): Free font->font_info if necessary.
961
962 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
963 (cff_service_ps_info): Register cff_ps_get_font_info.
964
Werner Lemberg23df31a2007-01-13 08:45:00 +00009652007-01-13 Werner Lemberg <wl@gnu.org>
966
967 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
968 with C++ compiler.
969
970 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
971 af_glyph_hints_dump_edges): Ditto.
972
973 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
974 `modules.cfg').
975
976 * src/sfnt/ttsbit0.h: Remove.
977
978 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
979
Werner Lemberg27cf9de2007-01-13 07:34:23 +00009802007-01-12 David Turner <david@freetype.org>
981
982 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
983 bug in the bitmap emboldener if the pitch of the source bitmap is
984 much larger than its width.
985
986 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
987 compilation warning.
988
Werner Lemberg6d96d312007-01-12 10:30:19 +00009892007-01-12 Werner Lemberg <wl@gnu.org>
990
991 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
992 `automake' CVS module from sources.redhat.com.
993
Werner Lemberg17432b52007-01-12 09:28:44 +00009942007-01-11 Werner Lemberg <wl@gnu.org>
995
996 * src/type1/t1load.c (is_space): Removed.
997 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
998 (parse_charstrings): Use IS_PS_TOKEN.
999
1000
1001 * autogen.sh: Avoid bash specific syntax.
1002
David Turner038ace22007-01-11 15:00:59 +000010032007-01-11 David Turner <david@freetype.org>
1004
Werner Lemberg17432b52007-01-12 09:28:44 +00001005 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001006
Werner Lemberg17432b52007-01-12 09:28:44 +00001007 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001008
Werner Lemberg17432b52007-01-12 09:28:44 +00001009 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1010 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001011 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001012
Werner Lemberg17432b52007-01-12 09:28:44 +00001013 * autogen.sh: Small fix to get it working on Mac OS X properly:
1014 The issue is that GNU libtool is called `glibtool' on this platform,
1015 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001016
David Turner2628ea92007-01-10 13:15:56 +000010172007-01-10 David Turner <david@freetype.org>
1018
Werner Lemberg17432b52007-01-12 09:28:44 +00001019 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1020 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001021
Werner Lemberg17432b52007-01-12 09:28:44 +00001022 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1023 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1024 version number to 2.3.0.
1025
1026 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1027 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001028
1029 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001030 include/freetype/ftlcdfil.h: Update reference documentation with
1031 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001032
Werner Lemberg17432b52007-01-12 09:28:44 +00001033 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1034 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001035
Werner Lembergbf02d392007-01-10 07:07:37 +000010362007-01-10 Derek Clegg <dclegg@apple.com>
1037
1038 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1039 values.
1040
David Turnerf48b60e2007-01-08 15:15:32 +000010412007-01-08 David Turner <david@freetype.org>
1042
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001043 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001044
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001045 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1046 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001047 corresponding to a given character pixel size.
1048
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001049 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1050 `gasp' table, in order to avoid potential problems with later
1051 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001052
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001053 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1054 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001055
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001056 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1057 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1058 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1059 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001060
Werner Lemberge6b6f372007-01-07 00:06:47 +000010612007-01-07 Werner Lemberg <wl@gnu.org>
1062
Werner Lembergb8004d22007-01-07 09:13:38 +00001063 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1064 Type 11 fonts.
1065 Scan for `/sfnts' token.
1066
10672007-01-07 Werner Lemberg <wl@gnu.org>
1068
1069 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001070
Werner Lembergbe5f7972007-01-06 07:51:48 +000010712007-01-06 Werner Lemberg <wl@gnu.org>
1072
1073 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1074 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1075
David Turnera8cf42b2007-01-04 16:46:46 +000010762007-01-04 David Turner <david@freetype.org>
1077
Werner Lembergf6294392007-01-06 07:47:45 +00001078 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1079 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001080
Werner Lembergf6294392007-01-06 07:47:45 +00001081
1082 Do not allocate interpreter-specific tables in memory if we are not
1083 going to load glyphs with the bytecode interpreter anyway.
1084
1085 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1086 only if glyph is hinted.
1087 Updated.
1088 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1089 and `cvs_ready'.
1090 Add `tt_size_ready_bytecode' declaration.
1091 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1092 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1093 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1094 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1095 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001096
David Turner91a34022007-01-05 14:47:08 +00001097
Werner Lembergf6294392007-01-06 07:47:45 +00001098 Don't extract the metrics table from the SFNT font file. Instead,
1099 reparse it on each glyph load. The runtime difference is not
1100 noticeable, and it can save a lot of heap memory when memory-mapped
1101 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001102
Werner Lembergf6294392007-01-06 07:47:45 +00001103 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1104 `horz_metrics_offset' and `vert_metrics_ofset'.
1105 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1106 Updated.
1107
1108
1109 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1110
1111
1112 Do not load the CFF index offsets into memory, since this wastes a
1113 *lot* of heap memory with large Asian CFF fonts. There is no
1114 significant performance loss.
1115
1116 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1117 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1118 `data_size'.
1119 (CFF_CharsetRec): Add field `num_glyphs'.
1120
1121 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1122 cff_charset_cid_to_gindex): New functions.
1123 (cff_new_index): Renamed to...
1124 (cff_index_init): This. Update all callers.
1125 Updated -- some code has been moved to `cff_index_load_offsets'.
1126 (cff_done_index): Renamed to...
1127 (cff_index_done): This. Update all callers.
1128 (cff_index_get_pointers, cff_index_access_element): Updated to use
1129 stream offsets.
1130 (cff_charset_compute_cids): Set `num_glyphs' field.
1131 (cff_encoding_load): Updated.
1132
1133 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001134
11352007-01-04 David Turner <david@freetype.org>
1136
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001137 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1138 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001139
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001140 * README.CVS: Add common problem description and solution
1141 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001142
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001143 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001144
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001145 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001146
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001147 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001148
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001149 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1150 (TWorker): This.
1151 Remove `count_table' and `memory'.
1152 Make `grays' a pointer.
1153 (TRaster): New structure.
1154 (count_table): New static array.
1155 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1156 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1157 ft_black_set_mode, ft_black_render): Updated.
1158 (ft_black_init): Don't initialize `count_table'.
1159 (ft_black_reset): Use the render pool. This saves about 6KB of
1160 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001161
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001162 * src/smooth/ftgrays.c (TRaster): Replaced with...
1163 (TWorker): This.
1164 Remove `memory'.
1165 (TRaster): New structure.
1166
1167 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1168 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1169 gray_render_span, gray_raster_render): Updated.
1170 (gray_raster_reset): Use the render pool. This saves about 6KB of
1171 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001172
David Turner8a6c44e2007-01-04 17:03:11 +00001173 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1174 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001175 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1176 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1177 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001178
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001179 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1180 Remove a typo that results in no hinting and a memory leak with some
1181 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001182
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001183 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001184 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001185 CFF_Faces in it. We need to close all faces before destroying the
1186 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001187
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000011882007-01-02 Werner Lemberg <wl@gnu.org>
1189
1190 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1191 Remove compiler warning.
1192
David Turner9207e002007-01-02 16:58:13 +000011932007-01-02 David Turner <david@freetype.org>
1194
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001195 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001196
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011972006-12-31 Masatake YAMATO <jet@gyve.org>
1198
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001199 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1200 function.
1201 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001202 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001203 `gxv_kern_subtable_fmt0_pairs_validate'.
1204
David Turner115b4422006-12-22 11:37:05 +000012052006-12-22 David Turner <david@freetype.org>
1206
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001207 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1208 warnings.
David Turner115b4422006-12-22 11:37:05 +00001209
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001210 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1211 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001212
Werner Lemberg4755bf72006-12-16 08:58:44 +000012132006-12-16 Anders Kaseorg <anders@kaseorg.com>
1214
1215 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1216 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1217
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000012182006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1219
Werner Lemberg9b774e22007-01-16 06:11:27 +00001220 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001221 sync with the modification by Jens Claudius on 2006-08-22; cf.
1222 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 +00001223
12242006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1225
1226 * src/base/ftmac.c: Specialized for Mac OS X only.
1227 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1228 * builds/unix/configure.raw: Ditto. When explicit switches for
1229 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1230 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1231
12322006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1233
1234 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1235 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1236 instead of src/base/ftmac.c
1237 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1238 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1239 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1240 that cannot be built at present.
1241
12422006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1243
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001244 * src/base/ftobjs.c: Improvement of resource fork handler for
1245 POSIX, cf.
1246 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001247 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1248 format or .dfont, to simulate the face index number counted by ftmac.c.
1249 (IsMacResource): Return the number of scalable faces correctly.
1250
Werner Lembergec5b4502006-12-10 07:51:38 +000012512006-12-10 Werner Lemberg <wl@gnu.org>
1252
1253 * builds/toplevel.mk (version): Protect against `distclean' target.
1254
Werner Lembergb26b3142006-12-09 20:01:43 +000012552006-12-09 Werner Lemberg <wl@gnu.org>
1256
1257 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1258 or `type'.
1259
1260 * builds/freetype.mk (version): Extracted from freetype.h, using
1261 GNU make's built-in string functions.
1262 (refdoc): Use $(version) instead of static version number.
1263
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000012642006-12-08 Werner Lemberg <wl@gnu.org>
1265
1266 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1267
Werner Lemberg15c29502006-12-09 07:29:54 +000012682006-12-08 Vladimir Volovich <vvv@vsu.ru>
1269
1270 * src/tools/apinames (State): Remove final comma in structure -- xlc
1271 v5 under AIX 4.3 doesn't like this.
1272
David Turnerdbf3b432006-12-07 21:18:09 +000012732006-12-07 David Turner <david@freetype.org>
1274
Werner Lemberg256a3512006-12-08 06:49:33 +00001275 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1276 to the spacing of auto-fitted glyphs. This only impacts rare
1277 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001278
Werner Lemberg11171312006-12-03 09:43:40 +000012792006-12-03 Werner Lemberg <wl@gnu.org>
1280
1281 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1282
Werner Lemberg960ba592006-12-01 08:20:47 +000012832006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001284
Werner Lemberg960ba592006-12-01 08:20:47 +00001285 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1286 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1287 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001288
David Turner80658e52006-11-28 08:09:20 +00001289
Werner Lemberg960ba592006-12-01 08:20:47 +00001290 * include/freetype/ftxf86.h: Fix and extend comment so that it
1291 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001292
Werner Lemberg960ba592006-12-01 08:20:47 +00001293 * include/freetype/ftchapters.h: Add `font_format' section.
1294
1295
1296 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1297 to TOC in index page.
1298
12992006-11-28 David Turner <david@freetype.org>
1300
1301 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1302 trying to render into a zero-width/height bitmap, not an error code.
1303
1304 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1305
1306 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1307 ones instead.
1308
1309 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1310 variable.
David Turner80658e52006-11-28 08:09:20 +00001311
Werner Lemberg8636c292006-11-26 22:28:13 +000013122006-11-26 Pierre Hanser <hanser@club-internet.fr>
1313
1314 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1315
Werner Lemberg960ba592006-12-01 08:20:47 +000013162006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001317
Werner Lemberg960ba592006-12-01 08:20:47 +00001318 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1319 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1320 Add stubs to link the `ftgrid' test program when debugging is
1321 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001322
Werner Lemberg960ba592006-12-01 08:20:47 +000013232006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001324
1325 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001326 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1327
1328 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1329 Emit more sensible information.
1330
1331 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1332
1333 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1334 rounding of blue values.
1335 (af_latin_hints_compute_segments): Hint segment heights.
1336 (af_latin_hints_link_segments): Reduce `len_score' value.
1337 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1338 value and use `height' member for comparisons.
1339 (af_latin_hint_edges): Extend logging message.
1340 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001341
Werner Lemberg91959bf2006-11-22 10:36:55 +000013422006-11-22 Werner Lemberg <wl@gnu.org>
1343
1344 Fix Savannah bug #15553.
1345
1346 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1347 program after a change from mono to grayscaling (and vice versa).
1348 Use correct constant for comparison to get `exec->grayscale'.
1349
Werner Lemberg913a3652006-11-19 09:19:17 +000013502006-11-18 Werner Lemberg <wl@gnu.org>
1351
1352 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001353 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001354 This patch fixes Savannah bug #18301.
1355
1356 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1357 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1358 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1359 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1360 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1361 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1362 (FNT_Load_Glyph): Check validity of `glyph_index'.
1363
David Turner7bab6ae2006-11-13 11:25:06 +000013642006-11-13 David Turner <david@freetype.org>
1365
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001366 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1367 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001368
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001369 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1370 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1371 when building the library to change the default LCD filter to be
1372 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001373
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001374 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001375
David Turner8765c712006-11-10 16:49:42 +000013762006-11-10 David Turner <david@freetype.org>
1377
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001378 * src/smooth/ftsmooth.c: API change for the LCD
1379 filter. The FT_LcdFilter value is an enumeration describing which
1380 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1381 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1382 algorithm which produces strong color fringes for everything
1383 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001384
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001385 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1386 second parameter to an enum type.
1387
1388 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1389 (_ft_lcd_filter): Rename to...
1390 (_ft_lcd_filter_fir): This.
1391 Update parameters.
1392 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1393 (FT_Library_Set_LcdFilter): Update parameters.
1394 Handle new filter modes.
1395
1396 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1397 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1398 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1399 callback and update other fields.
1400
1401 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1402 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1403 Other minor improvements.
1404
1405 * src/autofit/aflatin.c: Various tiny improvements that drastically
1406 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1407 (af_latin_hints_compute_edges): Fix typo.
1408 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001409
David Turner4e9cc3c2006-11-09 16:31:52 +000014102006-11-09 David Turner <david@freetype.org>
1411
Werner Lemberg49c77a82006-11-09 21:51:57 +00001412 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1413 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001414
Werner Lemberg5e430892006-11-07 09:35:03 +000014152006-11-07 Zhe Su <james.su@gmail.com>
1416
1417 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1418 also.
1419
Werner Lemberg111b5ae2006-11-03 09:40:12 +000014202006-11-03 Werner Lemberg <wl@gnu.org>
1421
1422 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1423
David Turner40604742006-11-02 16:37:35 +000014242006-11-02 David Turner <david@freetype.org>
1425
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001426 Add a few tweaks to better handle serif fonts.
1427 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001428
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001429 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1430 segments that are less than 1.5 pixels high. This gets rid of
1431 *many* corner cases with serifs.
1432 (af_latin_align_linked_edge): Add logging message.
1433 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1434 Add logging messages.
1435 Handle AF_EDGE_FLAG flag specially.
1436
1437 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1438 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1439
1440 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1441 Update external declarations.
1442 (af_corner_orientation, af_corner_is_flat): Replaced by...
1443
1444 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1445 ft_corner_is_flat): These declarations.
1446
1447 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1448 Comment out. Replaced by...
1449
1450 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1451 These functions. Update all callers.
1452 (FT_Add64) [!FT_LONG64]: Simplify.
1453
1454 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1455 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1456 production of garbage by missing lots of segments.
1457
1458 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1459
1460 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1461 [AF_DEBUG]: Set _af_debug_hints.
1462
1463
1464 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1465 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1466 and ft_corner_orientation.
1467
1468
1469 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001470
Werner Lemberge88c5262006-10-24 05:46:26 +000014712006-10-24 Werner Lemberg <wl@gnu.org>
1472
1473 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1474
1475 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1476 as argument.
1477
David Turnera1861392006-10-23 16:00:59 +000014782006-10-23 Zhe Su <zsu@novell.com>
1479
Werner Lemberg715e96e2006-10-24 05:28:45 +00001480 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1481 better deal with broken Asian fonts with strange glyphs, having
1482 self-intersections and other peculiarities. The used algorithm is
1483 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001484
David Turnere140f142006-10-23 08:56:57 +000014852006-10-23 David Turner <david@freetype.org>
1486
Werner Lemberg715e96e2006-10-24 05:28:45 +00001487 Speed up the CFF font loader. With some large CFF fonts,
1488 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001489
Werner Lemberg715e96e2006-10-24 05:28:45 +00001490 * src/cff/cffload.c (cff_get_offset): Removed.
1491 (cff_new_index): Inline functionality of `cff_get_offset'.
1492 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1493 (cff_charset_done): Call `cff_charset_free_cids'.
1494 (cff_charset_load): Call `cff_charset_compute_cids'.
1495 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1496
1497 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1498 with FT_NEXT_XXX.
1499
1500
1501 Speed up the Postscript hinter, with more than 100% speed increase
1502 on my machine.
1503
1504 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1505 psh_corner_orientation): New functions.
1506 (psh_glyph_compute_inflections): Merge loops for efficiency.
1507 Use `psh_corner_orientation'.
1508 (psh_glyph_init): Use `psh_corner_is_flat'.
1509 (psh_hint_table_find_strong_point): Renamed to...
1510 (psh_hint_table_find_strong_points): This.
1511 Rewrite, adding argument to handle all points at once.
1512 Update all callers.
1513 (PSH_MAX_STRONG_INTERNAL): New macro.
1514 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001515
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000015162006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1517
1518 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001519 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001520
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000015212006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1522
1523 * docs/INSTALL.CROSS: New document file for cross-building.
1524
1525 * builds/unix/configure.raw: Preliminary cross-building support.
1526 Find native C compiler and pass it by CC_BUILD, and
1527 find suffix for native executable and pass it by EXEEXT_BUILD.
1528 Also suffix for target executable is passed by EXEEXT.
1529
Werner Lembergb9e6d692006-10-15 08:58:40 +00001530 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1531 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001532 CC_BUILD and EXEEXT_BUILD.
1533
Werner Lembergb9e6d692006-10-15 08:58:40 +00001534 * builds/exports.mk (APINAMES_EXE): Change the extension for
1535 apinames from the suffix for target (E) to that for building host
1536 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001537
Werner Lemberg82a07e92006-10-12 06:20:44 +000015382006-10-12 Werner Lemberg <wl@gnu.org>
1539
1540 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1541 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1542 which reference those files.
1543
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000015442006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1545
Werner Lembergb9e6d692006-10-15 08:58:40 +00001546 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1547 embedded in freetype2.pc and freetype-config. Use it to record
1548 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001549
1550 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1551
1552 * builds/unix/freetype-config.in: Ditto.
1553
Werner Lemberg28e17d92006-10-11 17:27:47 +000015542006-10-11 Werner Lemberg <wl@gnu.org>
1555
1556 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1557 development.
1558
Jens Claudius336d2292006-10-03 08:53:37 +000015592006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1560
1561 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1562 argument to ft_setjmp.
1563
1564 * include/freetype/internal/ftvalid.h: Add comment that
1565 ft_validator_run must not be used.
1566
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015672006-10-01 Werner Lemberg <wl@gnu.org>
1568
1569 * src/base/ftbase.c: Undo change from 2006-09-30.
1570
1571 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1572
15732006-09-30 David Turner <david@freetype.org>
1574
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001575 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1576 s/unpatented_hinting/ignore_unpatented_hinter/.
1577 Update all callers.
1578
1579 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1580 auto-hinting shall be used or not.
1581
1582 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001583
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015842006-09-30 Werner Lemberg <wl@gnu.org>
1585
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001586 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1587 in use).
1588
1589 * src/base/ftbase.c: Include `ftlcdfil.c'.
1590
Werner Lemberg9b15ea32006-09-29 18:22:11 +000015912006-09-29 Werner Lemberg <wl@gnu.org>
1592
1593 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1594 overlapping segments. Bug reported by Stefan Koch.
1595
David Turnerad830712006-09-27 16:20:59 +000015962006-09-28 David Turner <david@freetype.org>
1597
Werner Lemberg2c002e12006-09-29 21:31:53 +00001598 Fix a bug in the automatic unpatented hinting support which prevents
1599 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001600
Werner Lemberg2c002e12006-09-29 21:31:53 +00001601 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1602 s/force_autohint/unpatented_hinting/. Update all callers.
1603
1604 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1605
1606 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001607
David Turner8a317cf2006-09-27 07:52:48 +000016082006-09-27 David Turner <david@freetype.org>
1609
Werner Lemberg2c002e12006-09-29 21:31:53 +00001610 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001611
David Turner8a317cf2006-09-27 07:52:48 +00001612
David Turnere140f142006-10-23 08:56:57 +00001613 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001614 In a default build, the function `FT_Library_SetLcdFilter' returns
1615 `FT_Err_Unimplemented_Feature'; you need to #define
1616 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1617 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001618
Werner Lemberg2c002e12006-09-29 21:31:53 +00001619 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001620
Werner Lemberg2c002e12006-09-29 21:31:53 +00001621 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1622 typedef.
1623 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1624 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001625
Werner Lemberg2c002e12006-09-29 21:31:53 +00001626 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1627 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001628
Werner Lemberg2c002e12006-09-29 21:31:53 +00001629 Handle subpixel rendering.
1630 Simplify function.
1631 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1632 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1633
1634 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1635 pointing to <freetype/ftlcdfil.h>.
1636
1637 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1638 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1639
1640 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001641
Werner Lemberge20df4a2006-09-27 06:29:21 +000016422006-09-26 David Bustin
1643
1644 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1645 correctly. Reported as Savannah bug #17843.
1646
David Turner6f8c6222006-09-26 15:42:44 +000016472006-09-26 David Turner <david@freetype.org>
1648
Werner Lemberg110246c2006-09-26 21:55:44 +00001649 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1650 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1651 horizontal and vertical hinting for the purpose of debugging the
1652 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001653
Werner Lemberg110246c2006-09-26 21:55:44 +00001654 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1655 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001656
Werner Lemberg110246c2006-09-26 21:55:44 +00001657 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1658
1659 * include/freetype/config/ftoption.h, devel/ftoption.h
1660 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1661 we want to compile LCD-optimized rendering code (à la ClearType) or
1662 not. The macro *must* be disabled in default builds of the library
1663 for patent reasons.
1664
1665 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1666 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1667 isn't defined at compile time. This only changes the content of the
1668 rendered glyph to match the one of normal gray-level rendering,
1669 hence clients should not need to be modified.
1670
1671 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001672
Werner Lemberg745ff2c2006-09-19 05:48:02 +000016732006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1674
1675 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1676 LWFN fails and both are available.
1677
David Turnerf3050052006-09-11 12:00:32 +000016782006-09-11 David Turner <david@freetype.org>
1679
Werner Lembergf9644552006-09-12 13:48:10 +00001680 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1681 report their English names through an Apple Roman
1682 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001683
Werner Lembergf9644552006-09-12 13:48:10 +00001684 If the font uses another name entry with language_id == English, it
1685 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001686
Werner Lembergf9644552006-09-12 13:48:10 +00001687 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1688 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001689
Werner Lemberg36d2eab2006-09-05 19:24:34 +000016902006-09-05 Werner Lemberg <wl@gnu.org>
1691
1692 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001693 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001694 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1695 `HAN NOM B.ttf').
1696
1697 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1698
David Turner772e55d2006-09-05 09:45:15 +000016992006-09-05 David Turner <david@freetype.org>
1700
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001701 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001702
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001703 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1704 (TRaster): Remove `count_ex' and `count_ey'.
1705 (gray_find_cell): Remove 2nd and 3rd argument.
1706 (gray_alloc_cell): Merged with `gray_find_cell'.
1707 (gray_record_cell): Simplify.
1708 (gray_set_cell): Rewrite.
1709 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1710 (gray_render_span): Don't use FT_MEM_SET for small values.
1711 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1712 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1713 bitmap scanline.
1714 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001715
David Turneraa557a92006-09-04 16:42:44 +000017162006-09-04 David Turner <david@freetype.org>
1717
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001718 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1719 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001720
Werner Lemberg2d8629b2006-09-03 06:18:45 +000017212006-09-03 Werner Lemberg <wl@gnu.org>
1722
1723 * devel/ftoption.h: Synchronize with
1724 include/freetype/config/ftoption.h.
1725
1726 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1727 variable declaration.
1728 (gray_convert_glyph): Fix compiler warnings.
1729
David Turner6d79f212006-09-01 14:09:35 +000017302006-09-01 David Turner <david@freetype.org>
1731
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001732 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1733 to recognize a few fonts that require the automatic unpatented
1734 loader.
David Turnerbd502952006-09-01 19:05:24 +00001735
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001736 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1737 rasterizer. The speed improvement is between 15% and 25%, depending
1738 on the font data.
1739
1740 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1741 (TCell): Redefine.
1742 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1743 (gray_init_cells): Updated.
1744 (gray_find_cell, gray_alloc_cell): New functions.
1745 (gray_record_cell): Rewritten to use `gray_find_cell' and
1746 `gray_alloc_cell'.
1747 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1748 QSORT_THRESHOLD):
1749 Removed.
1750 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1751 gray_dump_cells): Removed.
1752 (gray_sweep): Rewritten.
1753 (gray_convert_glyph): Rewrite code which used one of the sorting
1754 functions.
1755 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001756
Werner Lembergd898aed2006-08-29 09:50:34 +000017572006-08-29 Dr. Werner Fink <werner@suse.de>
1758
1759 * configure: Make it possible to handle configure options which
1760 have strings containing spaces.
1761
17622006-08-27 David Turner <david@freetype.org>
1763
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001764 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1765 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1766 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1767
1768 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1769 src/truetype/truetype.c, src/truetype/ttdriver.c,
1770 src/truetype/ttgload.c, src/truetype/ttgload.h,
1771 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1772 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1773 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1774
1775 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1776 member `force_autohint'.
1777
1778 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1779
1780 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1781 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001782
Jens Claudiusa787f452006-08-27 11:26:18 +000017832006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1784
1785 Fix miscellaneous compiler warnings.
1786
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001787 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1788 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001789
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001790 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1791 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1792 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001793
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001794 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1795 volatileness of argument to ft_longjmp. Spotted by Werner
1796 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001797
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001798 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1799 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001800
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001801 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1802 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001803
Werner Lembergc4c35b72006-08-27 08:03:46 +000018042006-08-27 Werner Lemberg <wl@gnu.org>
1805
1806 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1807 Reported by Jens.
1808
Jens Claudius088e44e2006-08-22 14:24:30 +000018092006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001810
Jens Claudius088e44e2006-08-22 14:24:30 +00001811 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001812 about addresses of volatile objects passed as function arguments as
1813 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001814
Werner Lembergc4c35b72006-08-27 08:03:46 +00001815 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1816 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001817
1818 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1819 argument `table' a pointer to a volatile object.
1820
1821 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1822 argument `table' a pointer to a volatile object.
1823
Jens Claudius2652bd52006-08-18 17:20:37 +000018242006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1825
1826 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1827 variable `_sfnt' as volatile since it must keep its value across
1828 a call to ft_setjmp.
1829 (gxv_validate): Same for local variables `memory' and `valid'.
1830 (classic_kern_validate): Same for local variables `memory',
1831 `ckern', and `valid'.
1832
1833 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1834 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1835 `jstf', and 'valid'.
1836
1837 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1838 local variable `cmap'.
1839
David Turner9fbfc6a2006-08-16 09:11:31 +000018402006-08-16 David Turner <david@freetype.org>
1841
Werner Lemberg12342992006-08-19 11:18:09 +00001842 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1843 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001844
Werner Lemberg12342992006-08-19 11:18:09 +00001845 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1846 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001847
David Turner33f5f242006-08-16 16:50:55 +00001848
Werner Lemberg12342992006-08-19 11:18:09 +00001849 Improvements to native TrueType hinting. This is a first try,
1850 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1851
1852 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1853 `extra_points2'.
1854
1855 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1856 `orus'.
1857
1858 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1859 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1860 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1861 handle `extra_points2'.
1862
1863 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1864 Remove compiler warning.
1865 (cur_to_arg): Remove macro.
1866 (TT_Hint_Glyph): Updated.
1867 (TT_Process_Simple_Glyph): Handle `orus'.
1868
1869 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1870 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1871 (LOC_Ins_IUP): Renamed to...
1872 (IUP_WorkerRec): This.
1873 Add `orus' member.
1874 (Shift): Renamed to...
1875 (_iup_worker_shift): This.
1876 Updated.
1877 (Interp): Renamed to...
1878 (_iup_worker_interpolate): This.
1879 Updated to handle `orus'.
1880 (Ins_IUP): Updated.
1881
1882 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1883 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001884
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000018852006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1886
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001887 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001888 build ftvalid in ft2demos. This has been inadvertedly changed
1889 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001890
18912006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1892
Werner Lemberg12342992006-08-19 11:18:09 +00001893 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1894 Jens:
1895 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001896
Werner Lemberg12342992006-08-19 11:18:09 +00001897 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1898 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001899
1900 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1901
Jens Claudius9950adc2006-08-13 12:14:36 +000019022006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1903
Werner Lemberg12342992006-08-19 11:18:09 +00001904 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1905 T1_TOKEN_TYPE_KEY.
1906 (T1_FieldRec): Add `dict'.
1907 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1908 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1909 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001910
Werner Lemberg12342992006-08-19 11:18:09 +00001911 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1912 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001913
1914 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1915
1916 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001917 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1918 not T1_TOKEN_TYPE_ANY.
1919 (ps_parser_load_field): Make sure a token that should be a string or
1920 name is really a string or name.
1921 Avoid memory leak if a keyword has been already encountered and its
1922 value is overwritten.
1923 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1924 T1_FIELD_XXX.
1925 (parse_dict): Ignore keywords that occur in the wrong dictionary
1926 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001927
Werner Lemberg12342992006-08-19 11:18:09 +00001928 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1929 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001930
Werner Lemberg12342992006-08-19 11:18:09 +00001931 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1932 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001933
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000019342006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1935
1936 Move creation of field `buildchar' of T1_DecoderRec out of
1937 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1938 of it.
1939
1940 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1941 and `T1_Compute_Max_Advance'.
1942
1943 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1944 Remove field `face', add `len_buildchar'.
1945
1946 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1947 field `buildchar'.
1948
1949 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1950 finisher for T1_Decoder.
1951 (cid_slot_load_glyph): Do not ignore failure when initializing the
1952 T1_Decoder.
1953
1954 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1955 Updated.
1956 (t1_decoder_init): Remove initialization of fields `buildchar' and
1957 `len_buildchar'.
1958 (t1_decoder_done): Remove deallocation of field `buildchar'.
1959
1960 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1961 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1962 T1_Decoder.
1963 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1964 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1965 case of error.
1966
1967 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1968 `buildchar' of T1_FaceRec.
1969
1970 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1971 `buildchar' of T1_FaceRec.
1972
Werner Lemberg1a380e02006-07-14 18:28:08 +000019732006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1974
1975 * freetype2/include/freetype/internal/psaux.h: New macros
1976 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1977 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1978 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1979 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1980 (T1_DecoderRec): New fields `buildchar' and `face'.
1981 (IS_PS_TOKEN): New macro.
1982
1983 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1984 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1985
1986 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1987 `default_design_vector' and `num_default_design_vector'.
1988
1989 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1990 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1991 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1992
1993 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1994 `token' argument to be NULL if we want only to count the number of
1995 tokens.
1996 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1997 want to skip the array.
1998 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1999 want to skip the array.
2000
2001 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2002 support for (partially commented out) othersubrs 19-25, 27, and 28.
2003 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2004 (t1_decoder_done): Release new field `buildchar'.
2005
2006 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2007 functions.
2008 (t1_keywords): Register them.
2009 (t1_allocate_blend): Updated.
2010 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2011 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2012 (parse_dict): Remove `keyword_flags' argument.
2013 Use new macro IS_PS_TOKEN.
2014 Changed function so that later PostScript definitions override
2015 earlier ones.
2016 (t1_init_loader): Initialize new field `keywords_encountered'.
2017 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2018 `len_buildchar'.
2019 Remove `keywords_flags'.
2020
2021 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2022 `keywords_encountered'.
2023 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2024
2025 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2026 New entries for parsing /NDV, /CDV, and /DesignVector.
2027
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000020282006-07-07 Werner Lemberg <wl@gnu.org>
2029
2030 Add many checks to protect against malformed PCF files.
2031
2032 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2033 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2034
2035 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2036 data and check that tables don't overlap (using a simple
2037 bubblesort).
2038 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2039 New macros which give the size of data structures in the data
2040 stream.
2041 (pcf_get_properties): Use rough estimates to get array size limits.
2042 Assign `face->nprops' and `face->properties' earlier so that a call
2043 to PCF_Face_Done can do the clean-up in case of error.
2044 Protect against invalid string offsets.
2045 (pcf_get_metrics): Clean up code.
2046 Adjust tracing message levels.
2047 Use rough estimate to get array size limit.
2048 (pcf_get_bitmaps): Clean up code.
2049 Adjust tracing message levels.
2050 Use rough estimates to get offset limits.
2051 (pcf_get_encodings): Adjust tracing message level.
2052 (pcf_get_accel): Clean up code.
2053
Werner Lemberg8eb05252006-06-27 06:20:01 +000020542006-06-26 Werner Lemberg <wl@gnu.org>
2055
2056 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2057 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2058
Werner Lemberg24703f82006-06-26 19:12:51 +000020592006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2060
2061 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2062 (t1_decoder_parse_charstrings): Operator with
2063 opcode 15 pops its two arguments.
2064 Handle the case where the pops of an othersubr may be part of a
2065 subroutine.
2066 Handle unknown othersubrs gracefully: count their operands and let
2067 the following pop operators push the operands as the results onto
2068 the Type1 stack.
2069 Improve handling of setcurrentpoint opcode.
2070
Werner Lembergc011f4c2006-06-26 09:40:00 +000020712006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2072
2073 The Type 1 parser now skips over top-level procedures as required
2074 for a `Simplified Parser'. This makes the parser more robust as it
2075 doesn't poke around in PostScript code. Additionally, it makes the
2076 FontDirectory hackery in src/type1/t1load.c unnecessary.
2077
2078 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2079 (skip_literal_string): Add FT_Error as return value.
2080 Handle escapes better.
2081 (skip_string): Add FT_Error as return value.
2082 Don't set `parser->error' but return error code directly.
2083 (skip_procedure): New function.
2084 (ps_parser_skip_PS_token): Handle procedures.
2085 Update code.
2086 (ps_parser_to_token): Update code.
2087 (ps_parser_load_field_table): Handle bbox entries also.
2088
2089 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2090 Add commented-out code for synthetic fonts.
2091
Werner Lemberga2da05c2006-06-25 06:27:27 +000020922006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2093
2094 Fix two hinting bugs as reported in
2095 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2096
2097 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2098 `first_point' member.
2099
2100 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2101 `first_point'.
2102 (TT_Process_Composite_Glyph): Always untouch points.
2103
2104 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2105 `first_point' and `last_point' in case of composite glyphs.
2106 (Ins_IUP): Fix computation of `end_point'.
2107
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000021082006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2109
Werner Lembergef3d2c22006-06-25 06:07:14 +00002110 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2111 Mac. The original patch was written by David Sachitano and Lawrence
2112 Coopet, and modified by Sean McBride for MPW compatibility. Only
2113 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002114
Werner Lembergef3d2c22006-06-25 06:07:14 +00002115 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2116 Mac OS X platforms.
2117 (OS_INLINE): Undefine before definition.
2118 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2119 FontAssociation table in FOND resource.
2120 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2121 and fontSize at each entry of FontAssociation table in FOND
2122 resource.
2123 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2124 ffStylOff of FamilyRecord header of FOND resource, the header,
2125 fontSize, fontID at each entry of FontAssociation table, and
2126 StyleMapping table.
2127 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002128
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000021292006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2130
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002131 Public API of TrueTypeGX, OpenType, and classic kern table validator
2132 should return `FT_Err_Unimplemented_Feature' if validation service
2133 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002134 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002135 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2136
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002137 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2138 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2139 unavailable.
2140 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2141 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002142
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002143 * src/base/ftotval.c (FT_OpenType_Validate): Return
2144 FT_Err_Unimplemented_Feature if OpenType validation service is
2145 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002146
Werner Lembergb10e45a2006-06-08 07:32:56 +000021472006-06-08 Werner Lemberg <wl@gnu.org>
2148
2149 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2150 errors.
2151
David Turner5f1f7502006-06-07 05:11:50 +000021522006-06-07 David Turner <david@freetype.org>
2153
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002154 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2155 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2156 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002157
David Turner457b4a82006-06-06 08:14:14 +000021582006-06-06 David Turner <david@freetype.org>
2159
Werner Lemberg4836f952006-06-06 12:54:08 +00002160 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002161
Werner Lemberg4836f952006-06-06 12:54:08 +00002162 We change `ps_unicodes_init' so that it also takes a
2163 `free_glyph_name' callback to release the glyph names returned by
2164 `get_glyph_name'
2165
2166 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2167 Renamed to ...
2168 (PS_GetGlyphNameFunc): This.
2169 (PS_FreeGlyphNameFunc): New typedef.
2170 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2171
2172 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2173 argument.
2174 (cff_sid_free_glyph_name): New function.
2175 (cff_cmap_unicode_init): Updated.
2176
2177 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2178
2179 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2180 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002181
2182
David Turner09717352006-06-04 14:33:08 +000021832006-06-04 David Turner <david@freetype.org>
2184
Werner Lembergd724f202006-06-04 15:17:41 +00002185 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2186 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002187 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002188
Werner Lembergd724f202006-06-04 15:17:41 +00002189 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2190 of `face->num_glyphs' which missed the last glyph, due to
2191 the offset-by-1 computation, since the PFR format doesn't
2192 guarantee that glyph index 0 corresponds to the `missing
2193 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002194
Werner Lemberg33779662006-05-26 06:30:05 +000021952006-05-25 Werner Lemberg <wl@gnu.org>
2196
2197 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2198 `-no-undefined'. Reported by Christian Biesinger.
2199
Werner Lemberg24773d62006-05-20 08:53:13 +000022002006-05-19 Brian Weed <bw@imaginengine.com>
2201
2202 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2203 have debug information, and debug libraries use `C7 compatible'
2204 debug info.
2205
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000022062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2207
Werner Lemberga6523a62006-05-20 08:47:01 +00002208 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002209 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002210
Werner Lemberga6523a62006-05-20 08:47:01 +00002211 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2212 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002213
2214 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002215 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002216
22172006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2218
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002219 * build/unix/configure.raw: Add a fallback to disable Carbon
2220 dependency, if configured with no options on Mac OS X.
2221
22222006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2223
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002224 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002225 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002226 the second part of Savannah bug #16590.
2227
Werner Lemberg545c4e52006-05-17 22:55:04 +000022282006-05-18 Werner Lemberg <wl@gnu.org>
2229
2230 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2231 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2232
David Turnerdc3ff312006-05-17 12:59:35 +000022332006-05-17 David Turner <david@freetype.org>
2234
Werner Lemberg545c4e52006-05-17 22:55:04 +00002235 This is a major patch used to drastically improve the performance of
2236 loading glyphs. This both speeds up loading the glyph vectors
2237 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002238
Werner Lemberg545c4e52006-05-17 22:55:04 +00002239 We now use inline assembler code with GCC to implement `FT_MulFix',
2240 which is probably the most important function related to the
2241 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002242
Werner Lemberg545c4e52006-05-17 22:55:04 +00002243 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002244
2245
Werner Lemberg545c4e52006-05-17 22:55:04 +00002246 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2247 `cursor' and `limit'.
2248
2249 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2250 New functions.
2251 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2252 [TEST]: Remove.
2253
2254 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2255 code.
2256
2257 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2258 `FT_ZERO'
2259 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2260 (af_glyph_hints_reload: Rewrite recognition of weak points.
2261
2262 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2263 constant values out of the loops.
2264
2265 * src/autofit/aftypes.h: Updated.
2266
2267 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2268
2269 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2270 product to get orientation.
2271
2272 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2273 (FT_Stream_OpenGzip): Use it to handle small files directly in
2274 memory.
2275
2276 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2277 Improve performance.
2278
2279 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2280 `limit'.
2281
2282 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2283 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2284 exceedingly large values of number of contours. Speed up by
2285 reducing the number of loops.
2286
2287 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2288
2289
2290 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2291 used to detect rogue clients from 4 to 16. This is to prevent some
2292 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2293 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002294
Werner Lembergde2d90a2006-05-17 08:54:30 +000022952007-05-17 Werner Lemberg <wl@gnu.org>
2296
2297 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002298 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002299
23002006-05-16 Werner Lemberg <wl@gnu.org>
2301
2302 * docs/PROBLEMS: Updated icl issues.
2303
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002304----------------------------------------------------------------------------
2305
Werner Lemberg42b63b22007-01-21 21:01:33 +00002306Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002307David Turner, Robert Wilhelm, and Werner Lemberg.
2308
2309This file is part of the FreeType project, and may only be used, modified,
2310and distributed under the terms of the FreeType project license,
2311LICENSE.TXT. By continuing to use, modify, or distribute this file you
2312indicate that you have read the license and understand and accept it
2313fully.
2314
2315
2316Local Variables:
2317version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002318coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002319End: