blob: 2ae2699790e387eacb939a8895ef4c0a8a049a3a [file] [log] [blame]
David Turner6c2ab092007-06-16 16:40:37 +000012006-06-16 David Turner <david@freetype.org>
2
3 * src/smooth/ftgrays.c (gray_hline): prevent integer overflows
4 when rendering *very* large outlines
5
6
Werner Lembergab1604b2007-06-16 07:59:39 +000072006-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
8
9 * src/winfonts/winfnt.h: Add necessary structures for PE resource
10 parsing.
11 (WinPE32_HeaderRec): New structure.
12 (WinPE32_SectionRec): New structure.
13 (WinPE_RsrcDirRec): New structure.
14 (WinPE_RsrcDirEntryRec): New structure.
15 (WinPE_RsrcDataEntryRec): New structure.
16 (FNT_FontRec): Remove unused `size_shift' field.
17
18 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
19 loading bitmap .fon files in PE format.
20
Werner Lemberg08a645d2007-06-15 14:05:20 +0000212006-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
22
23 * builds/win32/ftdebug.c: Unify debug level handling with other
24 platforms.
25
Werner Lemberg367f3012007-06-14 06:56:52 +0000262006-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
27
28 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
29 console as well as to the debugger.
30
Werner Lemberg46dde492007-06-14 03:59:02 +0000312006-06-14 Werner Lemberg <wl@gnu.org>
32
33 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
34 cover all ranges which could possibly be handled by the aflatin
35 module (since the default fallback for unknown ranges is now the
36 afcjk module). It might be necessary to fine-tune this further by
37 splitting off modules for Greek, Cyrillic, or other blocks.
38
David Turnerb7920172007-06-11 05:37:35 +0000392007-06-11 David Turner <david@freetype.org>
40
Werner Lemberg49e18b82007-06-11 21:15:09 +000041 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
42 incorrect segment linking computation. This was the root cause of
43 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +000044
45
Werner Lemberg49e18b82007-06-11 21:15:09 +000046 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
47 to improve the Latin auto-hinter. Note that the new code is
48 disabled by default since it is not stabilized yet.
49
50 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
51 (disabled currently).
52
53 * src/autofit/afhints.c: Remove dead code.
54 (af_axis_hints_new_edge): Add argument to handle segment directions.
55 (af_edge_flags_to_string): New function.
56 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
57 option flags.
58 (af_glyph_hints_reload): Add argument to handle inflections.
59 Simplify.
60 (af_direction_compute): Fine tuning.
61 (af_glyph_hints_align_edge_points): Fix logic.
62 (af_glyph_hints_align_strong_points): Do linear search for small
63 edge counts.
64 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
65 (af_iup_shift): Handle zero `delta'.
66
67 * src/autofit/afhints.h: Updated.
68 (AF_SORT_SEGMENTS): New macro (disabled).
69 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
70
71 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
72 argument to pass option flags for handling scripts.
73 * src/autofit/afglobal.h: Updated.
74
75 * src/autofit/afcjk.c: Updated.
76 * src/autofit/aflatin.c: Updated.
77 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
78
79 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
80 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
81 Don't set `edge->dir'
82 (af_latin_hint_edges): Add more logging.
83
84 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +000085
Werner Lembergf6c120f2007-06-11 04:55:58 +0000862007-06-11 Werner Lemberg <wl@gnu.org>
87
Werner Lembergcf7b7642007-06-11 04:58:01 +000088 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +000089
David Turner84c6f882007-06-10 20:51:04 +0000902007-06-10 David Turner <david@freetype.org>
91
Werner Lembergf6c120f2007-06-11 04:55:58 +000092 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
93 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +000094
Werner Lembergf6c120f2007-06-11 04:55:58 +000095 * include/freetype/config/ftoption.h: Clarify documentation
96 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +000097
Werner Lembergf6c120f2007-06-11 04:55:58 +000098
99 Add new `FT_Face_CheckTrueTypePatents' API.
100
101 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
102 declaration.
103
104 * include/freetype/internal/services/svttglyf.h,
105 src/base/ftpatent.c: New files.
106
107 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
108 New macro.
109
110 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
111 `ttpload.h'.
112 (tt_service_truetype_glyf): New service structure.
113 (tt_services): Register it.
114
115 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
116 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000117
Werner Lemberg33db39e2007-06-08 06:30:29 +00001182007-06-08 Werner Lemberg <wl@gnu.org>
119
David Turner84c6f882007-06-10 20:51:04 +0000120 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000121 Fonts without a cmap must be handled correctly by FreeType (anything
122 else would be a bug).
123
124
125 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
126 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
127
Werner Lemberg88ab6382007-06-07 05:01:56 +00001282007-06-07 Werner Lemberg <wl@gnu.org>
129
130 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
131 tt_sbit_decoder_load_image): Protect against integer overflows.
132
133
134 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
135 for `x_control' and `y_control'.
136
Werner Lemberg2a2dca62007-06-06 04:39:37 +00001372007-06-06 Werner Lemberg <wl@gnu.org>
138
139 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
140
Werner Lemberga8d65492007-06-06 04:47:49 +0000141
142 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
143 FreeType error.
144
Werner Lemberg470210b2007-06-06 10:05:49 +0000145
146 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
147 `font_count'.
148
149
150 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
151
152
153 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
154 `FT_Error'.
155 Check `fd_index'.
156 (cff_slot_load): Updated.
157 * src/cff/cffgload.h: Updated.
158
Werner Lemberg6c054752007-06-05 05:27:54 +00001592007-06-05 Werner Lemberg <wl@gnu.org>
160
161 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
162 (pfr_glyph_load_simple): Convert assertion into normal FreeType
163 error.
164 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000165 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
166 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000167
168 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
169
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000170
Werner Lemberg470210b2007-06-06 10:05:49 +0000171 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000172
Werner Lemberge5c14d92007-06-05 20:50:37 +0000173
174 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
175 in case of parsing error.
176 (ps_parser_load_field): Updated.
177
178 * src/type1/t1load.c (parse_font_matrix): Updated.
179
Werner Lembergad18b362007-06-04 07:04:05 +00001802007-06-04 Werner Lemberg <wl@gnu.org>
181
182 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
183
184 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
185
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001862007-06-03 Werner Lemberg <wl@gnu.org>
187
Werner Lemberg99a320b2007-06-03 19:21:26 +0000188 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
189 George Williams (with some modifications).
190
1912007-06-03 Werner Lemberg <wl@gnu.org>
192
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000193 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
194 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
195 face == NULL. Suggested by Graham Asher.
196
Werner Lembergce280a22007-06-03 05:58:30 +00001972007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
198
199 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
200
Werner Lemberg5b591e42007-06-01 22:16:43 +00002012007-06-02 Werner Lemberg <wl@gnu.org>
202
203 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
204 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
205
206 * src/bdf/bdflib.c (bdf_load_font): Use them.
207
208 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
209
Werner Lembergb9933f42007-06-01 21:27:12 +00002102007-06-01 Werner Lemberg <wl@gnu.org>
211
212 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
213 (FTC_CMapCache_Lookup): Remove unused code.
214
Werner Lembergc793d902007-06-01 20:51:11 +00002152007-06-01 Sean McBride <sean@rogue-research.com>
216
217 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
218 unused.
219
Werner Lembergbebc7b12007-06-01 06:32:30 +00002202007-06-01 Werner Lemberg <wl@gnu.org>
221
222 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
223 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000224 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000225
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000226 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
227 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
228
Werner Lembergba03af62007-05-30 13:57:02 +00002292007-05-30 Werner Lemberg <wl@gnu.org>
230
231 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
232 against too small binary data strings.
233
234 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
235
David Turnerf0cd69c2007-05-28 15:42:09 +00002362007-05-28 David Turner <david@freetype.org>
237
Werner Lemberg99e0c182007-05-29 07:00:23 +0000238 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
239 transformation. This significantly reduces the loading time of CFF
240 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000241
Werner Lemberg99e0c182007-05-29 07:00:23 +0000242 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000243
Werner Lemberg99e0c182007-05-29 07:00:23 +0000244 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
245 hinting script to CJK, since it works well with more scripts than
246 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
247 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000248
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002492007-05-25 Werner Lemberg <wl@gnu.org>
250
251 * docs/CHANGES: Updated.
252
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00002532007-05-24 Werner Lemberg <wl@gnu.org>
254
255 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
256 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
257
2582007-05-24 Graham Asher <graham.asher@btinternet.com>
259
260 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
261 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
262
David Turner0d0365e2007-05-22 09:53:44 +00002632007-05-22 David Turner <david@freetype.org>
264
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000265 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
266 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000267
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000268
269 Avoid heap blowup with very large .Z font files. This fixes
270 Savannah bug #19910.
271
272 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
273 `in_limit', `pad', `pad_bits', and `in_buff' members.
274 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
275 `buf_total' members.
276
277 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
278 only one argument.
279 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000280
2812007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000282
283 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
284 (ps_dimension_set_mask_bits): Remove `const'.
285
David Turner0d0365e2007-05-22 09:53:44 +00002862007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000287
288 * src/sfnt/ttmtx.c (tt_face_get_metrics)
289 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
290
Werner Lembergb826fa72007-05-19 07:18:48 +00002912007-05-19 Derek Clegg <dclegg@apple.com>
292
293 Savannah patch #5929.
294
295 * include/freetype/tttables.h, src/base/ftobjcs.c
296 (FT_Get_CMap_Format): New function.
297
298 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
299 `format' member.
300 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
301 cmap_info->format.
302
Werner Lemberg6f99c882007-05-19 07:01:49 +00003032007-05-19 Werner Lemberg <wl@gnu.org>
304
305 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
306 before handling subglyphs so that it can be reinitialized each time.
307 This fixes Savannah bug #19859.
308
Werner Lemberg95bc9d32007-05-16 15:19:42 +00003092007-05-16 Werner Lemberg <wl@gnu.org>
310
311 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
312 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
313 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
314 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
315 tt_face_get_metrics): Fix type-punning issues.
316
David Turner0a24bd22007-05-15 10:54:10 +00003172007-05-15 David Turner <david@freetype.org>
318
319 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000320 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
321 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000322 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000323 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000324
Werner Lemberg607dec72007-05-15 06:49:37 +00003252007-05-15 Graham Asher <graham.asher@btinternet.com>
326
327 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
328 variable.
329 * src/autofit/afloader.c (af_loader_load_g): Ditto.
330
331 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
332 (open_face_from_buffer): Initialize `stream'.
333 (FT_Request_Metrics): Remove unused variable.
334 Remove redundant `break' statements.
335 (FT_Get_Track_Kerning): Remove unused variable.
336
337 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
338 afm_parse_kern_data): Remove redundant
339 `break' statements.
340 (afm_parser_parse): Ditto.
341 Don't use uninitialized variables.
342
343 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
344 Use `|' operator instead of `^' to set it.
345 Update all users.
346
347 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
348 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
349
350 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
351 comparison.
352 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
353 (TT_Load_Glyph): Remove unused variable.
354
Werner Lemberg8d463a52007-05-13 16:01:55 +00003552007-05-13 Derek Clegg <dclegg@apple.com>
356
357 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
358 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
359
David Turner711cf842007-05-11 14:36:24 +00003602007-05-11 David Turner <david@freetype.org>
361
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000362 * src/cache/ftbasic.c, include/freetype/ftcache.h
363 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
364 functions that allow us to look up glyphs using an FTC_Scaler object
365 to specify the size, making it possible to use fractional pixel
366 sizes.
367
368 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
369 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000370
Werner Lemberg94be20e2007-05-09 20:02:55 +00003712007-05-09 Graham Asher <graham.asher@btinternet.com>
372
373 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
374 (af_latin_metrics_scale_dim): Fix compiler warnings.
375
Werner Lemberg41271032007-05-06 04:51:48 +00003762007-05-06 Werner Lemberg <wl@gnu.org>
377
378 * builds/win32/visualce/freetype.sln: Removed, as requested by
379 Vincent.
380
Werner Lembergdf49e692007-05-04 06:30:05 +00003812007-05-04 Vincent RICHOMME <richom.v@free.fr>
382
383 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
384 PC targets.
385
386 * docs/CHANGES: Document them.
387
3882007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000389
390 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
391 mmap (which might happen on some RTOS). From Savannah patch #5909.
392
Werner Lemberg106eaf12007-05-03 07:07:47 +00003932007-05-03 Werner Lemberg <wl@gnu.org>
394
395 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
396 * include/freetype/freetype.h (FT_Set_Char_Size): Update
397 documentation.
398
Werner Lemberg1b5267d2007-04-28 21:06:15 +00003992007-04-28 Victor Stinner <victor.stinner@inl.fr>
400
401 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
402 `cmap'.
403
Werner Lembergcc712a22007-04-27 17:16:50 +00004042007-04-27 Werner Lemberg <wl@gnu.org>
405
406 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
407 number of points in contours. Problem reported by Victor Stinner
408 <victor.stinner@haypocalc.com>.
409 (TT_Process_Simple_Glyph): Synchronize variable types.
410
Werner Lemberg45bb18f2007-04-26 06:26:35 +00004112007-04-26 Werner Lemberg <wl@gnu.org>
412
413 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
414 zero in case of error. This fixes Savannah bug #19689.
415
David Turnera8b45e62007-05-11 14:10:30 +00004162007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
417
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000418 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
419 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000420
Werner Lembergfcc1f472007-04-10 11:51:50 +00004212007-04-10 Martin Horak <horakm@centrum.cz>
422
423 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
424 Ignore `hhea' table. This fixes Savannah bug #19261.
425
Werner Lemberg14bf82e2007-04-10 04:09:49 +00004262007-04-09 Werner Lemberg <wl@gnu.org>
427
428 * Version 2.3.4 released.
429 =========================
430
431
432 Tag sources with `VER-2-3-4'.
433
434 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
435 version number to 2.3.4.
436
437 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
438 builds/win32/visualc/freetype.dsp,
439 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
440
441 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
442
443 * builds/unix/configure.raw (version_info): Set to 9:15:3.
444
Werner Lembergf4a52a62007-04-09 08:40:11 +00004452007-04-09 Martin Horak <horakm@centrum.cz>
446
447 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
448 memory stream to avoid a crash with the incremental memory
449 interface (Savannah bug #19260).
450
David Turner1dcb4442007-04-06 08:19:04 +00004512007-04-06 David Turner <david@freetype.org>
452
Werner Lembergc81cf612007-04-06 09:28:23 +0000453 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
454 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000455
Werner Lemberg9f83e052007-04-05 02:28:23 +00004562007-04-04 Werner Lemberg <wl@gnu.org>
457
458 * Version 2.3.3 released.
459 =========================
460
461
462 Tag sources with `VER-2-3-3'.
463
464 * docs/CHANGES: Mention CVE-2007-1351.
465
David Turner7338ec22007-04-03 14:30:34 +00004662007-04-03 David Turner <david@freetype.org>
467
468 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000469 if one of the resolution values is 0, treat it as if it were the
470 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000471
David Turnere6472c12007-04-02 13:13:54 +00004722007-04-02 David Turner <david@freetype.org>
473
Werner Lemberg94f12272007-04-03 07:19:53 +0000474 Add special code to detect `extra-light' fonts and do not snap their
475 stem widths too much to avoid bizarre hinting effects.
476
477 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
478 `extra_light' members.
479
480 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
481 them.
482 (af_latin_metrics_scale_dim): Set `extra_light'.
483 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000484
David Turner3f539692007-03-28 14:53:40 +00004852007-03-28 David Turner <david@freetype.org>
486
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000487 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000488 padding.
489
Werner Lemberga08b2172007-03-28 07:17:17 +00004902007-03-28 Werner Lemberg <wl@gnu.org>
491
492 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
493 gracefully.
494 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000495 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000496 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
497 number of code points in Unicode.
498
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000499 * builds/win32/visualc/index.html,
500 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000501 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000502 s/232/233/.
503
504 * docs/CHANGES: Mention ftdiff.
505
David Turner3b242d32007-03-26 12:03:04 +00005062007-03-26 David Turner <david@freetype.org>
507
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000508 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
509 corresponding code.
510 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000511
Werner Lemberga08b2172007-03-28 07:17:17 +0000512 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000513 computations in order to ignore single-point contours. These are
514 never rasterized and correspond in certain fonts to mark-attach
515 points that are very far from the glyph's real outline, ruining the
516 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000517
Werner Lemberga08b2172007-03-28 07:17:17 +0000518 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000519 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000520 Otherwise code that uses them will most certainly ruin the fixed
521 advance property.
David Turner23553d62007-03-26 13:37:17 +0000522
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000523 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
524 documentation and bump version number to 2.3.3.
525
526 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
527
528 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000529
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00005302007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
531
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000532 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
533 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000534 * builds/vms/ftconfig.h: Ditto.
535 * include/freetype/config/ftconfig.h: Ditto.
536
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00005372007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
538
Werner Lemberg14ffe092007-03-22 06:12:43 +0000539 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
540 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000541 proposed by Sean McBride:
542 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
543
5442007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
545
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000546 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
547 setjmp, proposed by Sean McBride:
548 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
549
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00005502007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
551
Werner Lembergc9f6c662007-03-21 13:30:14 +0000552 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
553 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
554 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000555
David Turner74c34eb2007-03-18 07:19:31 +00005562007-03-18 David Turner <david@freetype.org>
557
Werner Lembergc9f6c662007-03-21 13:30:14 +0000558 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
559 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000560
Werner Lembergc9f6c662007-03-21 13:30:14 +0000561 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000562
David Turner89020d92007-03-17 17:48:57 +00005632007-03-17 David Turner <david@freetype.org>
564
Werner Lembergc9f6c662007-03-21 13:30:14 +0000565 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
566 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000567
Werner Lemberg25d592a2007-03-09 07:59:35 +00005682007-03-09 Werner Lemberg <wl@gnu.org>
569
570 * Version 2.3.2 released.
571 =========================
572
573
574 Tag sources with `VER-2-3-2'.
575
576 * builds/win32/visualc/index.html,
577 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000578 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000579 s/231/232/.
580
David Turner3a51afa2007-03-08 10:50:38 +00005812007-03-08 David Turner <david@freetype.org>
582
Werner Lemberg25d592a2007-03-09 07:59:35 +0000583 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000584
Werner Lemberg25d592a2007-03-09 07:59:35 +0000585 * builds/unix/configure.raw (version_info): Set to 9:13:3.
586
587 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
588
589 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000590
Werner Lemberg1e259de2007-03-08 15:39:21 +0000591 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
592 function to work properly, over-writing user-provided buffers in
593 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000594
David Turner121cad52007-03-08 16:43:50 +0000595
Werner Lemberg3d92f082007-03-06 11:59:24 +00005962007-03-05 Werner Lemberg <wl@gnu.org>
597
598 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
599 macro for `strstr'.
600
601 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
602 `trick_names', as suggested by Ivan Nincic.
603
David Turner085bc6e2007-03-05 17:40:03 +00006042007-03-05 David Turner <david@freetype.org>
605
Werner Lembergd112cf02007-03-06 12:06:56 +0000606 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
607 case FT_Init_FreeType fails for some reason. Problem reported by
608 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000609
Werner Lembergd112cf02007-03-06 12:06:56 +0000610 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
611 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
612 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
613 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000614
Werner Lembergd112cf02007-03-06 12:06:56 +0000615 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
616 signed values, not unsigned ones. Problem reported by Johannes
617 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000618
David Turner601aefe2007-02-21 16:47:49 +00006192007-02-21 David Turner <david@freetype.org>
620
Werner Lembergde5e6862007-02-25 21:06:43 +0000621 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
622 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000623
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00006242007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
625
626 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
627 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
628 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
629
Werner Lemberga0915172007-02-16 08:12:50 +00006302007-02-16 Werner Lemberg <wl@gnu.org>
631
632 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
633 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
634
David Turner2c4500e2007-02-14 15:08:47 +00006352007-02-14 David Turner <david@freetype.org>
636
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000637 It seems that the following changes fix most of the known
638 interpreter problems with my fonts, but more testing is needed,
639 though.
640
641 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
642 (TT_MulFix14): Rewrite.
643 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
644 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000645
Werner Lembergc6a14082007-02-12 22:08:15 +00006462007-02-12 Werner Lemberg <wl@gnu.org>
647
648 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
649 warnings.
650
651 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
652 (bdf_interpret_style): Ditto.
653
David Turnerc0f9c4a2007-02-12 14:55:03 +00006542007-02-12 David Turner <david@freetype.org>
655
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000656 Simplify projection and dual-projection code interface.
657
Werner Lemberg406d25f2007-02-12 22:01:18 +0000658 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
659 FT_Vector' as argument type.
660 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
661 Updated.
662 (CUR_fast_project, CUR_fast_dualproj): New macros.
663 (Project, Dual_Project, Project_x, Project_y): Updated.
664 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
665 macros.
666
667
668 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
669 adjustments for the non-light auto-hinted modes. Gets rid of
670 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000671
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000672 * src/autofit/aflatin.c (af_latin_hints_link_segments,
673 af_latin_hints_compute_edges): Slight optimization of the segment
674 linker and better handling of serif segments to get rid of broken
675 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000676
David Turnerc0f9c4a2007-02-12 14:55:03 +0000677
Werner Lemberg442bfb82007-02-12 21:44:10 +0000678 Introduce new string functions and the corresponding macros to get
679 rid of various uses of strcpy and other `evil' functions, as well as
680 to simplify a few things.
681
682 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
683 ft_mem_strcpyn): New declarations.
684 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
685 macros.
686 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
687 functions.
688
689 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
690 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
691 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
692 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
693 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
694 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
695 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
696 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000697
Werner Lemberg406d25f2007-02-12 22:01:18 +0000698 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
699
Werner Lemberg582067d2007-02-11 15:03:05 +00007002007-02-11 Werner Lemberg <wl@gnu.org>
701
702 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
703 non-spacing glyphs.
704
Werner Lemberg8f474532007-02-07 08:31:01 +00007052007-02-07 Tom Parker <palfrey@tevp.net>
706
707 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
708 pointer.
709
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
711
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000712 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
713 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000714 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000715 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
716 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
717 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
718 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000719
720 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
721 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000722 * builds/mac/ftmac.c: Ditto.
723
7242007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
725
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000726 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000727 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000728 #include <ftmac.c>.
729
7302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
731
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000732 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
733 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
734 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
735 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
736 FT_GetFilePath_From_Mac_ATS_Name.
737 * builds/mac/ftmac.c: Ditto.
738
7392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
740
Werner Lembergdcbb7082007-02-08 08:54:09 +0000741 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000742 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
743 for passing to FT_New_Face_From_FSSpec.
744
7452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
746
Werner Lembergdcbb7082007-02-08 08:54:09 +0000747 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000748 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000749
750 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
751 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000752 * builds/mac/ftmac.c (OS_INLINE): Ditto.
753
Werner Lemberg313d7772007-02-01 08:10:45 +00007542007-02-01 Werner Lemberg <wl@gnu.org>
755
756 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
757 Explain why applications shouldn't use it. Found by Alexei.
758
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007592007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000760
761 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
762 message.
763
764 * src/gxvalid/gxvmort1.c
765 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
766 message.
767
Werner Lemberg53935932007-01-31 08:53:02 +00007682007-01-31 Werner Lemberg <wl@gnu.org>
769
770
771 * Version 2.3.1 released.
772 =========================
773
774
775 Tag sources with `VER-2-3-1-FINAL'.
776
777 * builds/win32/visualc/freetype.dsp,
778 builds/win32/visualc/freetype.vcproj: s/230/231/.
779 * builds/win32/visualc/index.html: s/221/231/.
780
781 * vms_make.com: Add `ftgasp'.
782
David Turnera7ee6082007-01-30 10:33:53 +00007832007-01-30 David Turner <david@freetype.org>
784
Werner Lemberg53935932007-01-31 08:53:02 +0000785 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000786
Werner Lemberg53935932007-01-31 08:53:02 +0000787 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000788
Werner Lemberg25d592a2007-03-09 07:59:35 +0000789 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000790 s/2.3.0/2.3.1/.
791
792 * builds/unix/configure.raw (version_info): Set to 9:12:3.
793
794
795 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
796 (af_loader_load_g): Disable the warper (i.e., the light hinting
797 improvements) to make a 2.3.1 bugfix release before introducing a
798 new feature. This should give us more time to tune and improve the
799 warper for the next release.
800
801 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000802
David Turnerd91eebd2007-01-26 15:05:41 +00008032007-01-25 David Turner <david@freetype.org>
804
Werner Lembergbf241762007-01-26 16:08:49 +0000805 For light auto-hinting, improve glyph advance widths and resurrect
806 normal/full hinting to its normal quality.
807
808 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
809 and `xmax_delta'.
810 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
811 and `xmax_delta'.
812
813 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
814 preprocessor conditional with if-clause, handling both light and
815 normal mode.
816
817 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
818 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000819
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00008202007-01-25 Werner Lemberg <wl@gnu.org>
821
822 * docs/release: Updated -- Savannah uses a new uploading scheme.
823
David Turnera42567b2007-01-25 12:23:37 +00008242007-01-25 David Turner <david@freetype.org>
825
Werner Lembergd7855662007-01-25 13:53:56 +0000826 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000827
Werner Lembergd7855662007-01-25 13:53:56 +0000828 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
829 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
830 functions.
David Turnera42567b2007-01-25 12:23:37 +0000831
Werner Lembergd7855662007-01-25 13:53:56 +0000832 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000833
Werner Lembergb1be9e82007-01-25 11:50:00 +00008342007-01-25 Werner Lemberg <wl@gnu.org>
835
836 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000837 correctly in a sanity check. Since this function is only used to
838 load local and global functions, any charstring that called the last
839 local/global function would fail otherwise. This fixes Savannah bug
840 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000841
842 * docs/CHANGES: Document it.
843
David Turnerb6de8d12007-01-23 15:51:50 +00008442007-01-23 David Turner <david@freetype.org>
845
Werner Lembergb1be9e82007-01-25 11:50:00 +0000846 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
847 prevented compilation when disabling both the unpatented and the
848 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000849
Werner Lembergb1be9e82007-01-25 11:50:00 +0000850
851 Fix and enable the warper to improve `light' hinting mode. This is
852 not necessarily a final version, but it seems to work well.
853
854 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
855 Disable code.
856 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
857 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
858
859 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
860 (af_warper_compute_line_best): Fix array size of `scores'.
861 (af_warper_compute): Better handling of border cases.
862 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
863 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000864
Werner Lemberg011d1112007-01-21 09:36:00 +00008652007-01-21 Werner Lemberg <wl@gnu.org>
866
Werner Lemberg42b63b22007-01-21 21:01:33 +0000867 * ChangeLog: Split off older entries into...
868 * ChangeLog.22: This new file.
869
8702007-01-21 Werner Lemberg <wl@gnu.org>
871
Werner Lemberg555258f2007-01-21 09:46:37 +0000872 * docs/CHANGES: Document SHZ fix.
873
8742007-01-21 George Williams <gww@silcom.com>
875
876 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
877 points.
878
8792007-01-21 Werner Lemberg <wl@gnu.org>
880
Werner Lemberg011d1112007-01-21 09:36:00 +0000881 * src/sfnt/ttmtx.c (tt_face_get_metrics)
882 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
883
Werner Lemberg87a5a432007-01-17 12:44:39 +00008842007-01-17 Werner Lemberg <wl@gnu.org>
885
Werner Lembergb8003292007-01-17 12:56:25 +0000886
887 * Version 2.3.0 released.
888 =========================
889
890
891 Tag sources with `VER-2-3-0-FINAL'.
892
8932007-01-17 Werner Lemberg <wl@gnu.org>
894
Werner Lemberg87a5a432007-01-17 12:44:39 +0000895 * docs/release: Updated.
896
David Turner22122722007-01-16 20:06:44 +00008972007-01-16 David Turner <david@freetype.org>
898
Werner Lemberg87a5a432007-01-17 12:44:39 +0000899 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
900 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
901 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
902 warnings.
David Turner22122722007-01-16 20:06:44 +0000903
Werner Lemberg267e1d72007-01-15 07:48:09 +00009042007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
905
906 * builds/amiga/makefile, builds/amiga/makefile.os4,
907 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
908
909 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
910
Werner Lemberg8c4120d2007-01-15 06:42:40 +00009112007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
912
913 Fix various compiler warnings.
914
915 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
916 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
917 s/index/strike_index/.
918 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
919
920 * src/gxvalid/gxvmorx5.c
921 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
922
923 * src/truetype/ttinterp.c (Compute_Point_Displacement),
924 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
925 uninitialized variables.
926
Werner Lemberg6164a9d2007-01-13 23:01:36 +00009272007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
928
929 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
930
Werner Lemberg281c1482007-01-13 22:50:51 +00009312007-01-13 Werner Lemberg <wl@gnu.org>
932
933 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
934 versions up to 0x3FF without complaining.
935
Werner Lembergac250b22007-01-13 14:01:36 +00009362007-01-13 Derek Clegg <dclegg@apple.com>
937
938 Add FT_Get_PS_Font_Info interface to CFF driver.
939
940 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
941 (CFF_FontRec): Add `font_info' field.
942
943 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
944 (cff_font_done): Free font->font_info if necessary.
945
946 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
947 (cff_service_ps_info): Register cff_ps_get_font_info.
948
Werner Lemberg23df31a2007-01-13 08:45:00 +00009492007-01-13 Werner Lemberg <wl@gnu.org>
950
951 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
952 with C++ compiler.
953
954 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
955 af_glyph_hints_dump_edges): Ditto.
956
957 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
958 `modules.cfg').
959
960 * src/sfnt/ttsbit0.h: Remove.
961
962 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
963
Werner Lemberg27cf9de2007-01-13 07:34:23 +00009642007-01-12 David Turner <david@freetype.org>
965
966 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
967 bug in the bitmap emboldener if the pitch of the source bitmap is
968 much larger than its width.
969
970 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
971 compilation warning.
972
Werner Lemberg6d96d312007-01-12 10:30:19 +00009732007-01-12 Werner Lemberg <wl@gnu.org>
974
975 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
976 `automake' CVS module from sources.redhat.com.
977
Werner Lemberg17432b52007-01-12 09:28:44 +00009782007-01-11 Werner Lemberg <wl@gnu.org>
979
980 * src/type1/t1load.c (is_space): Removed.
981 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
982 (parse_charstrings): Use IS_PS_TOKEN.
983
984
985 * autogen.sh: Avoid bash specific syntax.
986
David Turner038ace22007-01-11 15:00:59 +00009872007-01-11 David Turner <david@freetype.org>
988
Werner Lemberg17432b52007-01-12 09:28:44 +0000989 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000990
Werner Lemberg17432b52007-01-12 09:28:44 +0000991 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000992
Werner Lemberg17432b52007-01-12 09:28:44 +0000993 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
994 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000995 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000996
Werner Lemberg17432b52007-01-12 09:28:44 +0000997 * autogen.sh: Small fix to get it working on Mac OS X properly:
998 The issue is that GNU libtool is called `glibtool' on this platform,
999 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001000
David Turner2628ea92007-01-10 13:15:56 +000010012007-01-10 David Turner <david@freetype.org>
1002
Werner Lemberg17432b52007-01-12 09:28:44 +00001003 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1004 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001005
Werner Lemberg17432b52007-01-12 09:28:44 +00001006 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1007 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1008 version number to 2.3.0.
1009
1010 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1011 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001012
1013 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001014 include/freetype/ftlcdfil.h: Update reference documentation with
1015 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001016
Werner Lemberg17432b52007-01-12 09:28:44 +00001017 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1018 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001019
Werner Lembergbf02d392007-01-10 07:07:37 +000010202007-01-10 Derek Clegg <dclegg@apple.com>
1021
1022 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1023 values.
1024
David Turnerf48b60e2007-01-08 15:15:32 +000010252007-01-08 David Turner <david@freetype.org>
1026
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001027 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001028
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001029 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1030 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001031 corresponding to a given character pixel size.
1032
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001033 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1034 `gasp' table, in order to avoid potential problems with later
1035 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001036
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001037 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1038 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001039
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001040 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1041 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1042 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1043 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001044
Werner Lemberge6b6f372007-01-07 00:06:47 +000010452007-01-07 Werner Lemberg <wl@gnu.org>
1046
Werner Lembergb8004d22007-01-07 09:13:38 +00001047 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1048 Type 11 fonts.
1049 Scan for `/sfnts' token.
1050
10512007-01-07 Werner Lemberg <wl@gnu.org>
1052
1053 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001054
Werner Lembergbe5f7972007-01-06 07:51:48 +000010552007-01-06 Werner Lemberg <wl@gnu.org>
1056
1057 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1058 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1059
David Turnera8cf42b2007-01-04 16:46:46 +000010602007-01-04 David Turner <david@freetype.org>
1061
Werner Lembergf6294392007-01-06 07:47:45 +00001062 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1063 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001064
Werner Lembergf6294392007-01-06 07:47:45 +00001065
1066 Do not allocate interpreter-specific tables in memory if we are not
1067 going to load glyphs with the bytecode interpreter anyway.
1068
1069 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1070 only if glyph is hinted.
1071 Updated.
1072 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1073 and `cvs_ready'.
1074 Add `tt_size_ready_bytecode' declaration.
1075 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1076 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1077 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1078 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1079 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001080
David Turner91a34022007-01-05 14:47:08 +00001081
Werner Lembergf6294392007-01-06 07:47:45 +00001082 Don't extract the metrics table from the SFNT font file. Instead,
1083 reparse it on each glyph load. The runtime difference is not
1084 noticeable, and it can save a lot of heap memory when memory-mapped
1085 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001086
Werner Lembergf6294392007-01-06 07:47:45 +00001087 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1088 `horz_metrics_offset' and `vert_metrics_ofset'.
1089 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1090 Updated.
1091
1092
1093 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1094
1095
1096 Do not load the CFF index offsets into memory, since this wastes a
1097 *lot* of heap memory with large Asian CFF fonts. There is no
1098 significant performance loss.
1099
1100 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1101 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1102 `data_size'.
1103 (CFF_CharsetRec): Add field `num_glyphs'.
1104
1105 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1106 cff_charset_cid_to_gindex): New functions.
1107 (cff_new_index): Renamed to...
1108 (cff_index_init): This. Update all callers.
1109 Updated -- some code has been moved to `cff_index_load_offsets'.
1110 (cff_done_index): Renamed to...
1111 (cff_index_done): This. Update all callers.
1112 (cff_index_get_pointers, cff_index_access_element): Updated to use
1113 stream offsets.
1114 (cff_charset_compute_cids): Set `num_glyphs' field.
1115 (cff_encoding_load): Updated.
1116
1117 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001118
11192007-01-04 David Turner <david@freetype.org>
1120
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001121 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1122 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001123
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001124 * README.CVS: Add common problem description and solution
1125 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001126
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001127 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001128
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001129 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001130
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001131 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001132
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001133 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1134 (TWorker): This.
1135 Remove `count_table' and `memory'.
1136 Make `grays' a pointer.
1137 (TRaster): New structure.
1138 (count_table): New static array.
1139 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1140 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1141 ft_black_set_mode, ft_black_render): Updated.
1142 (ft_black_init): Don't initialize `count_table'.
1143 (ft_black_reset): Use the render pool. This saves about 6KB of
1144 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001145
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001146 * src/smooth/ftgrays.c (TRaster): Replaced with...
1147 (TWorker): This.
1148 Remove `memory'.
1149 (TRaster): New structure.
1150
1151 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1152 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1153 gray_render_span, gray_raster_render): Updated.
1154 (gray_raster_reset): Use the render pool. This saves about 6KB of
1155 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001156
David Turner8a6c44e2007-01-04 17:03:11 +00001157 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1158 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001159 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1160 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1161 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001162
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001163 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1164 Remove a typo that results in no hinting and a memory leak with some
1165 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001166
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001167 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001168 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001169 CFF_Faces in it. We need to close all faces before destroying the
1170 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001171
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000011722007-01-02 Werner Lemberg <wl@gnu.org>
1173
1174 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1175 Remove compiler warning.
1176
David Turner9207e002007-01-02 16:58:13 +000011772007-01-02 David Turner <david@freetype.org>
1178
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001179 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001180
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011812006-12-31 Masatake YAMATO <jet@gyve.org>
1182
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001183 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1184 function.
1185 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001186 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001187 `gxv_kern_subtable_fmt0_pairs_validate'.
1188
David Turner115b4422006-12-22 11:37:05 +000011892006-12-22 David Turner <david@freetype.org>
1190
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001191 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1192 warnings.
David Turner115b4422006-12-22 11:37:05 +00001193
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001194 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1195 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001196
Werner Lemberg4755bf72006-12-16 08:58:44 +000011972006-12-16 Anders Kaseorg <anders@kaseorg.com>
1198
1199 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1200 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1201
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000012022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1203
Werner Lemberg9b774e22007-01-16 06:11:27 +00001204 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001205 sync with the modification by Jens Claudius on 2006-08-22; cf.
1206 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 +00001207
12082006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1209
1210 * src/base/ftmac.c: Specialized for Mac OS X only.
1211 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1212 * builds/unix/configure.raw: Ditto. When explicit switches for
1213 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1214 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1215
12162006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1217
1218 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1219 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1220 instead of src/base/ftmac.c
1221 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1222 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1223 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1224 that cannot be built at present.
1225
12262006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1227
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001228 * src/base/ftobjs.c: Improvement of resource fork handler for
1229 POSIX, cf.
1230 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001231 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1232 format or .dfont, to simulate the face index number counted by ftmac.c.
1233 (IsMacResource): Return the number of scalable faces correctly.
1234
Werner Lembergec5b4502006-12-10 07:51:38 +000012352006-12-10 Werner Lemberg <wl@gnu.org>
1236
1237 * builds/toplevel.mk (version): Protect against `distclean' target.
1238
Werner Lembergb26b3142006-12-09 20:01:43 +000012392006-12-09 Werner Lemberg <wl@gnu.org>
1240
1241 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1242 or `type'.
1243
1244 * builds/freetype.mk (version): Extracted from freetype.h, using
1245 GNU make's built-in string functions.
1246 (refdoc): Use $(version) instead of static version number.
1247
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000012482006-12-08 Werner Lemberg <wl@gnu.org>
1249
1250 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1251
Werner Lemberg15c29502006-12-09 07:29:54 +000012522006-12-08 Vladimir Volovich <vvv@vsu.ru>
1253
1254 * src/tools/apinames (State): Remove final comma in structure -- xlc
1255 v5 under AIX 4.3 doesn't like this.
1256
David Turnerdbf3b432006-12-07 21:18:09 +000012572006-12-07 David Turner <david@freetype.org>
1258
Werner Lemberg256a3512006-12-08 06:49:33 +00001259 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1260 to the spacing of auto-fitted glyphs. This only impacts rare
1261 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001262
Werner Lemberg11171312006-12-03 09:43:40 +000012632006-12-03 Werner Lemberg <wl@gnu.org>
1264
1265 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1266
Werner Lemberg960ba592006-12-01 08:20:47 +000012672006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001268
Werner Lemberg960ba592006-12-01 08:20:47 +00001269 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1270 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1271 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001272
David Turner80658e52006-11-28 08:09:20 +00001273
Werner Lemberg960ba592006-12-01 08:20:47 +00001274 * include/freetype/ftxf86.h: Fix and extend comment so that it
1275 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001276
Werner Lemberg960ba592006-12-01 08:20:47 +00001277 * include/freetype/ftchapters.h: Add `font_format' section.
1278
1279
1280 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1281 to TOC in index page.
1282
12832006-11-28 David Turner <david@freetype.org>
1284
1285 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1286 trying to render into a zero-width/height bitmap, not an error code.
1287
1288 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1289
1290 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1291 ones instead.
1292
1293 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1294 variable.
David Turner80658e52006-11-28 08:09:20 +00001295
Werner Lemberg8636c292006-11-26 22:28:13 +000012962006-11-26 Pierre Hanser <hanser@club-internet.fr>
1297
1298 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1299
Werner Lemberg960ba592006-12-01 08:20:47 +000013002006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001301
Werner Lemberg960ba592006-12-01 08:20:47 +00001302 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1303 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1304 Add stubs to link the `ftgrid' test program when debugging is
1305 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001306
Werner Lemberg960ba592006-12-01 08:20:47 +000013072006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001308
1309 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001310 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1311
1312 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1313 Emit more sensible information.
1314
1315 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1316
1317 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1318 rounding of blue values.
1319 (af_latin_hints_compute_segments): Hint segment heights.
1320 (af_latin_hints_link_segments): Reduce `len_score' value.
1321 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1322 value and use `height' member for comparisons.
1323 (af_latin_hint_edges): Extend logging message.
1324 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001325
Werner Lemberg91959bf2006-11-22 10:36:55 +000013262006-11-22 Werner Lemberg <wl@gnu.org>
1327
1328 Fix Savannah bug #15553.
1329
1330 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1331 program after a change from mono to grayscaling (and vice versa).
1332 Use correct constant for comparison to get `exec->grayscale'.
1333
Werner Lemberg913a3652006-11-19 09:19:17 +000013342006-11-18 Werner Lemberg <wl@gnu.org>
1335
1336 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001337 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001338 This patch fixes Savannah bug #18301.
1339
1340 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1341 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1342 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1343 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1344 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1345 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1346 (FNT_Load_Glyph): Check validity of `glyph_index'.
1347
David Turner7bab6ae2006-11-13 11:25:06 +000013482006-11-13 David Turner <david@freetype.org>
1349
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001350 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1351 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001352
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001353 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1354 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1355 when building the library to change the default LCD filter to be
1356 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001357
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001358 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001359
David Turner8765c712006-11-10 16:49:42 +000013602006-11-10 David Turner <david@freetype.org>
1361
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001362 * src/smooth/ftsmooth.c: API change for the LCD
1363 filter. The FT_LcdFilter value is an enumeration describing which
1364 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1365 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1366 algorithm which produces strong color fringes for everything
1367 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001368
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001369 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1370 second parameter to an enum type.
1371
1372 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1373 (_ft_lcd_filter): Rename to...
1374 (_ft_lcd_filter_fir): This.
1375 Update parameters.
1376 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1377 (FT_Library_Set_LcdFilter): Update parameters.
1378 Handle new filter modes.
1379
1380 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1381 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1382 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1383 callback and update other fields.
1384
1385 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1386 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1387 Other minor improvements.
1388
1389 * src/autofit/aflatin.c: Various tiny improvements that drastically
1390 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1391 (af_latin_hints_compute_edges): Fix typo.
1392 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001393
David Turner4e9cc3c2006-11-09 16:31:52 +000013942006-11-09 David Turner <david@freetype.org>
1395
Werner Lemberg49c77a82006-11-09 21:51:57 +00001396 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1397 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001398
Werner Lemberg5e430892006-11-07 09:35:03 +000013992006-11-07 Zhe Su <james.su@gmail.com>
1400
1401 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1402 also.
1403
Werner Lemberg111b5ae2006-11-03 09:40:12 +000014042006-11-03 Werner Lemberg <wl@gnu.org>
1405
1406 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1407
David Turner40604742006-11-02 16:37:35 +000014082006-11-02 David Turner <david@freetype.org>
1409
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001410 Add a few tweaks to better handle serif fonts.
1411 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001412
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001413 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1414 segments that are less than 1.5 pixels high. This gets rid of
1415 *many* corner cases with serifs.
1416 (af_latin_align_linked_edge): Add logging message.
1417 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1418 Add logging messages.
1419 Handle AF_EDGE_FLAG flag specially.
1420
1421 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1422 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1423
1424 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1425 Update external declarations.
1426 (af_corner_orientation, af_corner_is_flat): Replaced by...
1427
1428 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1429 ft_corner_is_flat): These declarations.
1430
1431 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1432 Comment out. Replaced by...
1433
1434 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1435 These functions. Update all callers.
1436 (FT_Add64) [!FT_LONG64]: Simplify.
1437
1438 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1439 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1440 production of garbage by missing lots of segments.
1441
1442 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1443
1444 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1445 [AF_DEBUG]: Set _af_debug_hints.
1446
1447
1448 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1449 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1450 and ft_corner_orientation.
1451
1452
1453 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001454
Werner Lemberge88c5262006-10-24 05:46:26 +000014552006-10-24 Werner Lemberg <wl@gnu.org>
1456
1457 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1458
1459 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1460 as argument.
1461
David Turnera1861392006-10-23 16:00:59 +000014622006-10-23 Zhe Su <zsu@novell.com>
1463
Werner Lemberg715e96e2006-10-24 05:28:45 +00001464 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1465 better deal with broken Asian fonts with strange glyphs, having
1466 self-intersections and other peculiarities. The used algorithm is
1467 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001468
David Turnere140f142006-10-23 08:56:57 +000014692006-10-23 David Turner <david@freetype.org>
1470
Werner Lemberg715e96e2006-10-24 05:28:45 +00001471 Speed up the CFF font loader. With some large CFF fonts,
1472 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001473
Werner Lemberg715e96e2006-10-24 05:28:45 +00001474 * src/cff/cffload.c (cff_get_offset): Removed.
1475 (cff_new_index): Inline functionality of `cff_get_offset'.
1476 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1477 (cff_charset_done): Call `cff_charset_free_cids'.
1478 (cff_charset_load): Call `cff_charset_compute_cids'.
1479 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1480
1481 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1482 with FT_NEXT_XXX.
1483
1484
1485 Speed up the Postscript hinter, with more than 100% speed increase
1486 on my machine.
1487
1488 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1489 psh_corner_orientation): New functions.
1490 (psh_glyph_compute_inflections): Merge loops for efficiency.
1491 Use `psh_corner_orientation'.
1492 (psh_glyph_init): Use `psh_corner_is_flat'.
1493 (psh_hint_table_find_strong_point): Renamed to...
1494 (psh_hint_table_find_strong_points): This.
1495 Rewrite, adding argument to handle all points at once.
1496 Update all callers.
1497 (PSH_MAX_STRONG_INTERNAL): New macro.
1498 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001499
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000015002006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1501
1502 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001503 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001504
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000015052006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1506
1507 * docs/INSTALL.CROSS: New document file for cross-building.
1508
1509 * builds/unix/configure.raw: Preliminary cross-building support.
1510 Find native C compiler and pass it by CC_BUILD, and
1511 find suffix for native executable and pass it by EXEEXT_BUILD.
1512 Also suffix for target executable is passed by EXEEXT.
1513
Werner Lembergb9e6d692006-10-15 08:58:40 +00001514 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1515 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001516 CC_BUILD and EXEEXT_BUILD.
1517
Werner Lembergb9e6d692006-10-15 08:58:40 +00001518 * builds/exports.mk (APINAMES_EXE): Change the extension for
1519 apinames from the suffix for target (E) to that for building host
1520 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001521
Werner Lemberg82a07e92006-10-12 06:20:44 +000015222006-10-12 Werner Lemberg <wl@gnu.org>
1523
1524 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1525 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1526 which reference those files.
1527
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000015282006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1529
Werner Lembergb9e6d692006-10-15 08:58:40 +00001530 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1531 embedded in freetype2.pc and freetype-config. Use it to record
1532 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001533
1534 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1535
1536 * builds/unix/freetype-config.in: Ditto.
1537
Werner Lemberg28e17d92006-10-11 17:27:47 +000015382006-10-11 Werner Lemberg <wl@gnu.org>
1539
1540 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1541 development.
1542
Jens Claudius336d2292006-10-03 08:53:37 +000015432006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1544
1545 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1546 argument to ft_setjmp.
1547
1548 * include/freetype/internal/ftvalid.h: Add comment that
1549 ft_validator_run must not be used.
1550
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015512006-10-01 Werner Lemberg <wl@gnu.org>
1552
1553 * src/base/ftbase.c: Undo change from 2006-09-30.
1554
1555 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1556
15572006-09-30 David Turner <david@freetype.org>
1558
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001559 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1560 s/unpatented_hinting/ignore_unpatented_hinter/.
1561 Update all callers.
1562
1563 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1564 auto-hinting shall be used or not.
1565
1566 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001567
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015682006-09-30 Werner Lemberg <wl@gnu.org>
1569
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001570 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1571 in use).
1572
1573 * src/base/ftbase.c: Include `ftlcdfil.c'.
1574
Werner Lemberg9b15ea32006-09-29 18:22:11 +000015752006-09-29 Werner Lemberg <wl@gnu.org>
1576
1577 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1578 overlapping segments. Bug reported by Stefan Koch.
1579
David Turnerad830712006-09-27 16:20:59 +000015802006-09-28 David Turner <david@freetype.org>
1581
Werner Lemberg2c002e12006-09-29 21:31:53 +00001582 Fix a bug in the automatic unpatented hinting support which prevents
1583 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001584
Werner Lemberg2c002e12006-09-29 21:31:53 +00001585 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1586 s/force_autohint/unpatented_hinting/. Update all callers.
1587
1588 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1589
1590 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001591
David Turner8a317cf2006-09-27 07:52:48 +000015922006-09-27 David Turner <david@freetype.org>
1593
Werner Lemberg2c002e12006-09-29 21:31:53 +00001594 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001595
David Turner8a317cf2006-09-27 07:52:48 +00001596
David Turnere140f142006-10-23 08:56:57 +00001597 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001598 In a default build, the function `FT_Library_SetLcdFilter' returns
1599 `FT_Err_Unimplemented_Feature'; you need to #define
1600 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1601 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001602
Werner Lemberg2c002e12006-09-29 21:31:53 +00001603 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001604
Werner Lemberg2c002e12006-09-29 21:31:53 +00001605 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1606 typedef.
1607 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1608 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001609
Werner Lemberg2c002e12006-09-29 21:31:53 +00001610 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1611 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001612
Werner Lemberg2c002e12006-09-29 21:31:53 +00001613 Handle subpixel rendering.
1614 Simplify function.
1615 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1616 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1617
1618 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1619 pointing to <freetype/ftlcdfil.h>.
1620
1621 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1622 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1623
1624 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001625
Werner Lemberge20df4a2006-09-27 06:29:21 +000016262006-09-26 David Bustin
1627
1628 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1629 correctly. Reported as Savannah bug #17843.
1630
David Turner6f8c6222006-09-26 15:42:44 +000016312006-09-26 David Turner <david@freetype.org>
1632
Werner Lemberg110246c2006-09-26 21:55:44 +00001633 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1634 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1635 horizontal and vertical hinting for the purpose of debugging the
1636 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001637
Werner Lemberg110246c2006-09-26 21:55:44 +00001638 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1639 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001640
Werner Lemberg110246c2006-09-26 21:55:44 +00001641 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1642
1643 * include/freetype/config/ftoption.h, devel/ftoption.h
1644 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1645 we want to compile LCD-optimized rendering code (à la ClearType) or
1646 not. The macro *must* be disabled in default builds of the library
1647 for patent reasons.
1648
1649 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1650 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1651 isn't defined at compile time. This only changes the content of the
1652 rendered glyph to match the one of normal gray-level rendering,
1653 hence clients should not need to be modified.
1654
1655 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001656
Werner Lemberg745ff2c2006-09-19 05:48:02 +000016572006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1658
1659 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1660 LWFN fails and both are available.
1661
David Turnerf3050052006-09-11 12:00:32 +000016622006-09-11 David Turner <david@freetype.org>
1663
Werner Lembergf9644552006-09-12 13:48:10 +00001664 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1665 report their English names through an Apple Roman
1666 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001667
Werner Lembergf9644552006-09-12 13:48:10 +00001668 If the font uses another name entry with language_id == English, it
1669 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001670
Werner Lembergf9644552006-09-12 13:48:10 +00001671 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1672 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001673
Werner Lemberg36d2eab2006-09-05 19:24:34 +000016742006-09-05 Werner Lemberg <wl@gnu.org>
1675
1676 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001677 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001678 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1679 `HAN NOM B.ttf').
1680
1681 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1682
David Turner772e55d2006-09-05 09:45:15 +000016832006-09-05 David Turner <david@freetype.org>
1684
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001685 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001686
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001687 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1688 (TRaster): Remove `count_ex' and `count_ey'.
1689 (gray_find_cell): Remove 2nd and 3rd argument.
1690 (gray_alloc_cell): Merged with `gray_find_cell'.
1691 (gray_record_cell): Simplify.
1692 (gray_set_cell): Rewrite.
1693 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1694 (gray_render_span): Don't use FT_MEM_SET for small values.
1695 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1696 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1697 bitmap scanline.
1698 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001699
David Turneraa557a92006-09-04 16:42:44 +000017002006-09-04 David Turner <david@freetype.org>
1701
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001702 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1703 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001704
Werner Lemberg2d8629b2006-09-03 06:18:45 +000017052006-09-03 Werner Lemberg <wl@gnu.org>
1706
1707 * devel/ftoption.h: Synchronize with
1708 include/freetype/config/ftoption.h.
1709
1710 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1711 variable declaration.
1712 (gray_convert_glyph): Fix compiler warnings.
1713
David Turner6d79f212006-09-01 14:09:35 +000017142006-09-01 David Turner <david@freetype.org>
1715
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001716 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1717 to recognize a few fonts that require the automatic unpatented
1718 loader.
David Turnerbd502952006-09-01 19:05:24 +00001719
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001720 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1721 rasterizer. The speed improvement is between 15% and 25%, depending
1722 on the font data.
1723
1724 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1725 (TCell): Redefine.
1726 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1727 (gray_init_cells): Updated.
1728 (gray_find_cell, gray_alloc_cell): New functions.
1729 (gray_record_cell): Rewritten to use `gray_find_cell' and
1730 `gray_alloc_cell'.
1731 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1732 QSORT_THRESHOLD):
1733 Removed.
1734 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1735 gray_dump_cells): Removed.
1736 (gray_sweep): Rewritten.
1737 (gray_convert_glyph): Rewrite code which used one of the sorting
1738 functions.
1739 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001740
Werner Lembergd898aed2006-08-29 09:50:34 +000017412006-08-29 Dr. Werner Fink <werner@suse.de>
1742
1743 * configure: Make it possible to handle configure options which
1744 have strings containing spaces.
1745
17462006-08-27 David Turner <david@freetype.org>
1747
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001748 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1749 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1750 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1751
1752 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1753 src/truetype/truetype.c, src/truetype/ttdriver.c,
1754 src/truetype/ttgload.c, src/truetype/ttgload.h,
1755 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1756 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1757 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1758
1759 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1760 member `force_autohint'.
1761
1762 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1763
1764 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1765 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001766
Jens Claudiusa787f452006-08-27 11:26:18 +000017672006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1768
1769 Fix miscellaneous compiler warnings.
1770
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001771 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1772 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001773
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001774 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1775 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1776 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001777
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001778 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1779 volatileness of argument to ft_longjmp. Spotted by Werner
1780 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001781
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001782 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1783 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001784
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001785 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1786 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001787
Werner Lembergc4c35b72006-08-27 08:03:46 +000017882006-08-27 Werner Lemberg <wl@gnu.org>
1789
1790 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1791 Reported by Jens.
1792
Jens Claudius088e44e2006-08-22 14:24:30 +000017932006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001794
Jens Claudius088e44e2006-08-22 14:24:30 +00001795 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001796 about addresses of volatile objects passed as function arguments as
1797 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001798
Werner Lembergc4c35b72006-08-27 08:03:46 +00001799 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1800 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001801
1802 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1803 argument `table' a pointer to a volatile object.
1804
1805 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1806 argument `table' a pointer to a volatile object.
1807
Jens Claudius2652bd52006-08-18 17:20:37 +000018082006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1809
1810 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1811 variable `_sfnt' as volatile since it must keep its value across
1812 a call to ft_setjmp.
1813 (gxv_validate): Same for local variables `memory' and `valid'.
1814 (classic_kern_validate): Same for local variables `memory',
1815 `ckern', and `valid'.
1816
1817 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1818 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1819 `jstf', and 'valid'.
1820
1821 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1822 local variable `cmap'.
1823
David Turner9fbfc6a2006-08-16 09:11:31 +000018242006-08-16 David Turner <david@freetype.org>
1825
Werner Lemberg12342992006-08-19 11:18:09 +00001826 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1827 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001828
Werner Lemberg12342992006-08-19 11:18:09 +00001829 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1830 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001831
David Turner33f5f242006-08-16 16:50:55 +00001832
Werner Lemberg12342992006-08-19 11:18:09 +00001833 Improvements to native TrueType hinting. This is a first try,
1834 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1835
1836 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1837 `extra_points2'.
1838
1839 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1840 `orus'.
1841
1842 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1843 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1844 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1845 handle `extra_points2'.
1846
1847 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1848 Remove compiler warning.
1849 (cur_to_arg): Remove macro.
1850 (TT_Hint_Glyph): Updated.
1851 (TT_Process_Simple_Glyph): Handle `orus'.
1852
1853 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1854 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1855 (LOC_Ins_IUP): Renamed to...
1856 (IUP_WorkerRec): This.
1857 Add `orus' member.
1858 (Shift): Renamed to...
1859 (_iup_worker_shift): This.
1860 Updated.
1861 (Interp): Renamed to...
1862 (_iup_worker_interpolate): This.
1863 Updated to handle `orus'.
1864 (Ins_IUP): Updated.
1865
1866 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1867 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001868
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000018692006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1870
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001871 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001872 build ftvalid in ft2demos. This has been inadvertedly changed
1873 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001874
18752006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1876
Werner Lemberg12342992006-08-19 11:18:09 +00001877 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1878 Jens:
1879 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001880
Werner Lemberg12342992006-08-19 11:18:09 +00001881 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1882 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001883
1884 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1885
Jens Claudius9950adc2006-08-13 12:14:36 +000018862006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1887
Werner Lemberg12342992006-08-19 11:18:09 +00001888 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1889 T1_TOKEN_TYPE_KEY.
1890 (T1_FieldRec): Add `dict'.
1891 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1892 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1893 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001894
Werner Lemberg12342992006-08-19 11:18:09 +00001895 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1896 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001897
1898 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1899
1900 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001901 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1902 not T1_TOKEN_TYPE_ANY.
1903 (ps_parser_load_field): Make sure a token that should be a string or
1904 name is really a string or name.
1905 Avoid memory leak if a keyword has been already encountered and its
1906 value is overwritten.
1907 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1908 T1_FIELD_XXX.
1909 (parse_dict): Ignore keywords that occur in the wrong dictionary
1910 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001911
Werner Lemberg12342992006-08-19 11:18:09 +00001912 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1913 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001914
Werner Lemberg12342992006-08-19 11:18:09 +00001915 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1916 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001917
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000019182006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1919
1920 Move creation of field `buildchar' of T1_DecoderRec out of
1921 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1922 of it.
1923
1924 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1925 and `T1_Compute_Max_Advance'.
1926
1927 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1928 Remove field `face', add `len_buildchar'.
1929
1930 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1931 field `buildchar'.
1932
1933 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1934 finisher for T1_Decoder.
1935 (cid_slot_load_glyph): Do not ignore failure when initializing the
1936 T1_Decoder.
1937
1938 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1939 Updated.
1940 (t1_decoder_init): Remove initialization of fields `buildchar' and
1941 `len_buildchar'.
1942 (t1_decoder_done): Remove deallocation of field `buildchar'.
1943
1944 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1945 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1946 T1_Decoder.
1947 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1948 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1949 case of error.
1950
1951 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1952 `buildchar' of T1_FaceRec.
1953
1954 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1955 `buildchar' of T1_FaceRec.
1956
Werner Lemberg1a380e02006-07-14 18:28:08 +000019572006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1958
1959 * freetype2/include/freetype/internal/psaux.h: New macros
1960 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1961 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1962 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1963 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1964 (T1_DecoderRec): New fields `buildchar' and `face'.
1965 (IS_PS_TOKEN): New macro.
1966
1967 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1968 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1969
1970 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1971 `default_design_vector' and `num_default_design_vector'.
1972
1973 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1974 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1975 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1976
1977 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1978 `token' argument to be NULL if we want only to count the number of
1979 tokens.
1980 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1981 want to skip the array.
1982 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1983 want to skip the array.
1984
1985 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1986 support for (partially commented out) othersubrs 19-25, 27, and 28.
1987 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1988 (t1_decoder_done): Release new field `buildchar'.
1989
1990 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1991 functions.
1992 (t1_keywords): Register them.
1993 (t1_allocate_blend): Updated.
1994 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1995 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1996 (parse_dict): Remove `keyword_flags' argument.
1997 Use new macro IS_PS_TOKEN.
1998 Changed function so that later PostScript definitions override
1999 earlier ones.
2000 (t1_init_loader): Initialize new field `keywords_encountered'.
2001 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2002 `len_buildchar'.
2003 Remove `keywords_flags'.
2004
2005 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2006 `keywords_encountered'.
2007 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2008
2009 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2010 New entries for parsing /NDV, /CDV, and /DesignVector.
2011
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000020122006-07-07 Werner Lemberg <wl@gnu.org>
2013
2014 Add many checks to protect against malformed PCF files.
2015
2016 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2017 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2018
2019 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2020 data and check that tables don't overlap (using a simple
2021 bubblesort).
2022 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2023 New macros which give the size of data structures in the data
2024 stream.
2025 (pcf_get_properties): Use rough estimates to get array size limits.
2026 Assign `face->nprops' and `face->properties' earlier so that a call
2027 to PCF_Face_Done can do the clean-up in case of error.
2028 Protect against invalid string offsets.
2029 (pcf_get_metrics): Clean up code.
2030 Adjust tracing message levels.
2031 Use rough estimate to get array size limit.
2032 (pcf_get_bitmaps): Clean up code.
2033 Adjust tracing message levels.
2034 Use rough estimates to get offset limits.
2035 (pcf_get_encodings): Adjust tracing message level.
2036 (pcf_get_accel): Clean up code.
2037
Werner Lemberg8eb05252006-06-27 06:20:01 +000020382006-06-26 Werner Lemberg <wl@gnu.org>
2039
2040 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2041 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2042
Werner Lemberg24703f82006-06-26 19:12:51 +000020432006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2044
2045 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2046 (t1_decoder_parse_charstrings): Operator with
2047 opcode 15 pops its two arguments.
2048 Handle the case where the pops of an othersubr may be part of a
2049 subroutine.
2050 Handle unknown othersubrs gracefully: count their operands and let
2051 the following pop operators push the operands as the results onto
2052 the Type1 stack.
2053 Improve handling of setcurrentpoint opcode.
2054
Werner Lembergc011f4c2006-06-26 09:40:00 +000020552006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2056
2057 The Type 1 parser now skips over top-level procedures as required
2058 for a `Simplified Parser'. This makes the parser more robust as it
2059 doesn't poke around in PostScript code. Additionally, it makes the
2060 FontDirectory hackery in src/type1/t1load.c unnecessary.
2061
2062 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2063 (skip_literal_string): Add FT_Error as return value.
2064 Handle escapes better.
2065 (skip_string): Add FT_Error as return value.
2066 Don't set `parser->error' but return error code directly.
2067 (skip_procedure): New function.
2068 (ps_parser_skip_PS_token): Handle procedures.
2069 Update code.
2070 (ps_parser_to_token): Update code.
2071 (ps_parser_load_field_table): Handle bbox entries also.
2072
2073 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2074 Add commented-out code for synthetic fonts.
2075
Werner Lemberga2da05c2006-06-25 06:27:27 +000020762006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2077
2078 Fix two hinting bugs as reported in
2079 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2080
2081 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2082 `first_point' member.
2083
2084 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2085 `first_point'.
2086 (TT_Process_Composite_Glyph): Always untouch points.
2087
2088 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2089 `first_point' and `last_point' in case of composite glyphs.
2090 (Ins_IUP): Fix computation of `end_point'.
2091
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020922006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2093
Werner Lembergef3d2c22006-06-25 06:07:14 +00002094 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2095 Mac. The original patch was written by David Sachitano and Lawrence
2096 Coopet, and modified by Sean McBride for MPW compatibility. Only
2097 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002098
Werner Lembergef3d2c22006-06-25 06:07:14 +00002099 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2100 Mac OS X platforms.
2101 (OS_INLINE): Undefine before definition.
2102 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2103 FontAssociation table in FOND resource.
2104 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2105 and fontSize at each entry of FontAssociation table in FOND
2106 resource.
2107 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2108 ffStylOff of FamilyRecord header of FOND resource, the header,
2109 fontSize, fontID at each entry of FontAssociation table, and
2110 StyleMapping table.
2111 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002112
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000021132006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2114
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002115 Public API of TrueTypeGX, OpenType, and classic kern table validator
2116 should return `FT_Err_Unimplemented_Feature' if validation service
2117 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002118 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002119 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2120
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002121 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2122 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2123 unavailable.
2124 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2125 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002126
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002127 * src/base/ftotval.c (FT_OpenType_Validate): Return
2128 FT_Err_Unimplemented_Feature if OpenType validation service is
2129 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002130
Werner Lembergb10e45a2006-06-08 07:32:56 +000021312006-06-08 Werner Lemberg <wl@gnu.org>
2132
2133 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2134 errors.
2135
David Turner5f1f7502006-06-07 05:11:50 +000021362006-06-07 David Turner <david@freetype.org>
2137
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002138 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2139 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2140 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002141
David Turner457b4a82006-06-06 08:14:14 +000021422006-06-06 David Turner <david@freetype.org>
2143
Werner Lemberg4836f952006-06-06 12:54:08 +00002144 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002145
Werner Lemberg4836f952006-06-06 12:54:08 +00002146 We change `ps_unicodes_init' so that it also takes a
2147 `free_glyph_name' callback to release the glyph names returned by
2148 `get_glyph_name'
2149
2150 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2151 Renamed to ...
2152 (PS_GetGlyphNameFunc): This.
2153 (PS_FreeGlyphNameFunc): New typedef.
2154 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2155
2156 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2157 argument.
2158 (cff_sid_free_glyph_name): New function.
2159 (cff_cmap_unicode_init): Updated.
2160
2161 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2162
2163 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2164 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002165
2166
David Turner09717352006-06-04 14:33:08 +000021672006-06-04 David Turner <david@freetype.org>
2168
Werner Lembergd724f202006-06-04 15:17:41 +00002169 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2170 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002171 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002172
Werner Lembergd724f202006-06-04 15:17:41 +00002173 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2174 of `face->num_glyphs' which missed the last glyph, due to
2175 the offset-by-1 computation, since the PFR format doesn't
2176 guarantee that glyph index 0 corresponds to the `missing
2177 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002178
Werner Lemberg33779662006-05-26 06:30:05 +000021792006-05-25 Werner Lemberg <wl@gnu.org>
2180
2181 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2182 `-no-undefined'. Reported by Christian Biesinger.
2183
Werner Lemberg24773d62006-05-20 08:53:13 +000021842006-05-19 Brian Weed <bw@imaginengine.com>
2185
2186 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2187 have debug information, and debug libraries use `C7 compatible'
2188 debug info.
2189
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021902006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2191
Werner Lemberga6523a62006-05-20 08:47:01 +00002192 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002193 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002194
Werner Lemberga6523a62006-05-20 08:47:01 +00002195 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2196 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002197
2198 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002199 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002200
22012006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2202
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002203 * build/unix/configure.raw: Add a fallback to disable Carbon
2204 dependency, if configured with no options on Mac OS X.
2205
22062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2207
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002208 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002209 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002210 the second part of Savannah bug #16590.
2211
Werner Lemberg545c4e52006-05-17 22:55:04 +000022122006-05-18 Werner Lemberg <wl@gnu.org>
2213
2214 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2215 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2216
David Turnerdc3ff312006-05-17 12:59:35 +000022172006-05-17 David Turner <david@freetype.org>
2218
Werner Lemberg545c4e52006-05-17 22:55:04 +00002219 This is a major patch used to drastically improve the performance of
2220 loading glyphs. This both speeds up loading the glyph vectors
2221 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002222
Werner Lemberg545c4e52006-05-17 22:55:04 +00002223 We now use inline assembler code with GCC to implement `FT_MulFix',
2224 which is probably the most important function related to the
2225 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002226
Werner Lemberg545c4e52006-05-17 22:55:04 +00002227 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002228
2229
Werner Lemberg545c4e52006-05-17 22:55:04 +00002230 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2231 `cursor' and `limit'.
2232
2233 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2234 New functions.
2235 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2236 [TEST]: Remove.
2237
2238 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2239 code.
2240
2241 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2242 `FT_ZERO'
2243 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2244 (af_glyph_hints_reload: Rewrite recognition of weak points.
2245
2246 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2247 constant values out of the loops.
2248
2249 * src/autofit/aftypes.h: Updated.
2250
2251 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2252
2253 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2254 product to get orientation.
2255
2256 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2257 (FT_Stream_OpenGzip): Use it to handle small files directly in
2258 memory.
2259
2260 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2261 Improve performance.
2262
2263 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2264 `limit'.
2265
2266 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2267 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2268 exceedingly large values of number of contours. Speed up by
2269 reducing the number of loops.
2270
2271 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2272
2273
2274 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2275 used to detect rogue clients from 4 to 16. This is to prevent some
2276 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2277 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002278
Werner Lembergde2d90a2006-05-17 08:54:30 +000022792007-05-17 Werner Lemberg <wl@gnu.org>
2280
2281 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002282 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002283
22842006-05-16 Werner Lemberg <wl@gnu.org>
2285
2286 * docs/PROBLEMS: Updated icl issues.
2287
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002288----------------------------------------------------------------------------
2289
Werner Lemberg42b63b22007-01-21 21:01:33 +00002290Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002291David Turner, Robert Wilhelm, and Werner Lemberg.
2292
2293This file is part of the FreeType project, and may only be used, modified,
2294and distributed under the terms of the FreeType project license,
2295LICENSE.TXT. By continuing to use, modify, or distribute this file you
2296indicate that you have read the license and understand and accept it
2297fully.
2298
2299
2300Local Variables:
2301version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002302coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002303End: