blob: 128905b61d1c9fa00e2deadb2814200630a65b6d [file] [log] [blame]
Werner Lemberg46dde492007-06-14 03:59:02 +000012006-06-14 Werner Lemberg <wl@gnu.org>
2
3 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
4 cover all ranges which could possibly be handled by the aflatin
5 module (since the default fallback for unknown ranges is now the
6 afcjk module). It might be necessary to fine-tune this further by
7 splitting off modules for Greek, Cyrillic, or other blocks.
8
David Turnerb7920172007-06-11 05:37:35 +000092007-06-11 David Turner <david@freetype.org>
10
Werner Lemberg49e18b82007-06-11 21:15:09 +000011 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
12 incorrect segment linking computation. This was the root cause of
13 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +000014
15
Werner Lemberg49e18b82007-06-11 21:15:09 +000016 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
17 to improve the Latin auto-hinter. Note that the new code is
18 disabled by default since it is not stabilized yet.
19
20 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
21 (disabled currently).
22
23 * src/autofit/afhints.c: Remove dead code.
24 (af_axis_hints_new_edge): Add argument to handle segment directions.
25 (af_edge_flags_to_string): New function.
26 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
27 option flags.
28 (af_glyph_hints_reload): Add argument to handle inflections.
29 Simplify.
30 (af_direction_compute): Fine tuning.
31 (af_glyph_hints_align_edge_points): Fix logic.
32 (af_glyph_hints_align_strong_points): Do linear search for small
33 edge counts.
34 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
35 (af_iup_shift): Handle zero `delta'.
36
37 * src/autofit/afhints.h: Updated.
38 (AF_SORT_SEGMENTS): New macro (disabled).
39 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
40
41 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
42 argument to pass option flags for handling scripts.
43 * src/autofit/afglobal.h: Updated.
44
45 * src/autofit/afcjk.c: Updated.
46 * src/autofit/aflatin.c: Updated.
47 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
48
49 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
50 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
51 Don't set `edge->dir'
52 (af_latin_hint_edges): Add more logging.
53
54 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +000055
Werner Lembergf6c120f2007-06-11 04:55:58 +0000562007-06-11 Werner Lemberg <wl@gnu.org>
57
Werner Lembergcf7b7642007-06-11 04:58:01 +000058 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +000059
David Turner84c6f882007-06-10 20:51:04 +0000602007-06-10 David Turner <david@freetype.org>
61
Werner Lembergf6c120f2007-06-11 04:55:58 +000062 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
63 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +000064
Werner Lembergf6c120f2007-06-11 04:55:58 +000065 * include/freetype/config/ftoption.h: Clarify documentation
66 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +000067
Werner Lembergf6c120f2007-06-11 04:55:58 +000068
69 Add new `FT_Face_CheckTrueTypePatents' API.
70
71 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
72 declaration.
73
74 * include/freetype/internal/services/svttglyf.h,
75 src/base/ftpatent.c: New files.
76
77 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
78 New macro.
79
80 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
81 `ttpload.h'.
82 (tt_service_truetype_glyf): New service structure.
83 (tt_services): Register it.
84
85 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
86 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +000087
Werner Lemberg33db39e2007-06-08 06:30:29 +0000882007-06-08 Werner Lemberg <wl@gnu.org>
89
David Turner84c6f882007-06-10 20:51:04 +000090 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +000091 Fonts without a cmap must be handled correctly by FreeType (anything
92 else would be a bug).
93
94
95 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
96 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
97
Werner Lemberg88ab6382007-06-07 05:01:56 +0000982007-06-07 Werner Lemberg <wl@gnu.org>
99
100 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
101 tt_sbit_decoder_load_image): Protect against integer overflows.
102
103
104 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
105 for `x_control' and `y_control'.
106
Werner Lemberg2a2dca62007-06-06 04:39:37 +00001072007-06-06 Werner Lemberg <wl@gnu.org>
108
109 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
110
Werner Lemberga8d65492007-06-06 04:47:49 +0000111
112 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
113 FreeType error.
114
Werner Lemberg470210b2007-06-06 10:05:49 +0000115
116 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
117 `font_count'.
118
119
120 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
121
122
123 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
124 `FT_Error'.
125 Check `fd_index'.
126 (cff_slot_load): Updated.
127 * src/cff/cffgload.h: Updated.
128
Werner Lemberg6c054752007-06-05 05:27:54 +00001292007-06-05 Werner Lemberg <wl@gnu.org>
130
131 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
132 (pfr_glyph_load_simple): Convert assertion into normal FreeType
133 error.
134 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000135 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
136 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000137
138 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
139
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000140
Werner Lemberg470210b2007-06-06 10:05:49 +0000141 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000142
Werner Lemberge5c14d92007-06-05 20:50:37 +0000143
144 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
145 in case of parsing error.
146 (ps_parser_load_field): Updated.
147
148 * src/type1/t1load.c (parse_font_matrix): Updated.
149
Werner Lembergad18b362007-06-04 07:04:05 +00001502007-06-04 Werner Lemberg <wl@gnu.org>
151
152 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
153
154 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
155
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001562007-06-03 Werner Lemberg <wl@gnu.org>
157
Werner Lemberg99a320b2007-06-03 19:21:26 +0000158 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
159 George Williams (with some modifications).
160
1612007-06-03 Werner Lemberg <wl@gnu.org>
162
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000163 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
164 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
165 face == NULL. Suggested by Graham Asher.
166
Werner Lembergce280a22007-06-03 05:58:30 +00001672007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
168
169 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
170
Werner Lemberg5b591e42007-06-01 22:16:43 +00001712007-06-02 Werner Lemberg <wl@gnu.org>
172
173 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
174 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
175
176 * src/bdf/bdflib.c (bdf_load_font): Use them.
177
178 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
179
Werner Lembergb9933f42007-06-01 21:27:12 +00001802007-06-01 Werner Lemberg <wl@gnu.org>
181
182 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
183 (FTC_CMapCache_Lookup): Remove unused code.
184
Werner Lembergc793d902007-06-01 20:51:11 +00001852007-06-01 Sean McBride <sean@rogue-research.com>
186
187 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
188 unused.
189
Werner Lembergbebc7b12007-06-01 06:32:30 +00001902007-06-01 Werner Lemberg <wl@gnu.org>
191
192 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
193 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000194 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000195
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000196 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
197 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
198
Werner Lembergba03af62007-05-30 13:57:02 +00001992007-05-30 Werner Lemberg <wl@gnu.org>
200
201 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
202 against too small binary data strings.
203
204 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
205
David Turnerf0cd69c2007-05-28 15:42:09 +00002062007-05-28 David Turner <david@freetype.org>
207
Werner Lemberg99e0c182007-05-29 07:00:23 +0000208 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
209 transformation. This significantly reduces the loading time of CFF
210 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000211
Werner Lemberg99e0c182007-05-29 07:00:23 +0000212 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000213
Werner Lemberg99e0c182007-05-29 07:00:23 +0000214 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
215 hinting script to CJK, since it works well with more scripts than
216 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
217 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000218
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002192007-05-25 Werner Lemberg <wl@gnu.org>
220
221 * docs/CHANGES: Updated.
222
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00002232007-05-24 Werner Lemberg <wl@gnu.org>
224
225 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
226 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
227
2282007-05-24 Graham Asher <graham.asher@btinternet.com>
229
230 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
231 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
232
David Turner0d0365e2007-05-22 09:53:44 +00002332007-05-22 David Turner <david@freetype.org>
234
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000235 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
236 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000237
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000238
239 Avoid heap blowup with very large .Z font files. This fixes
240 Savannah bug #19910.
241
242 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
243 `in_limit', `pad', `pad_bits', and `in_buff' members.
244 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
245 `buf_total' members.
246
247 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
248 only one argument.
249 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000250
2512007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000252
253 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
254 (ps_dimension_set_mask_bits): Remove `const'.
255
David Turner0d0365e2007-05-22 09:53:44 +00002562007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000257
258 * src/sfnt/ttmtx.c (tt_face_get_metrics)
259 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
260
Werner Lembergb826fa72007-05-19 07:18:48 +00002612007-05-19 Derek Clegg <dclegg@apple.com>
262
263 Savannah patch #5929.
264
265 * include/freetype/tttables.h, src/base/ftobjcs.c
266 (FT_Get_CMap_Format): New function.
267
268 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
269 `format' member.
270 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
271 cmap_info->format.
272
Werner Lemberg6f99c882007-05-19 07:01:49 +00002732007-05-19 Werner Lemberg <wl@gnu.org>
274
275 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
276 before handling subglyphs so that it can be reinitialized each time.
277 This fixes Savannah bug #19859.
278
Werner Lemberg95bc9d32007-05-16 15:19:42 +00002792007-05-16 Werner Lemberg <wl@gnu.org>
280
281 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
282 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
283 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
284 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
285 tt_face_get_metrics): Fix type-punning issues.
286
David Turner0a24bd22007-05-15 10:54:10 +00002872007-05-15 David Turner <david@freetype.org>
288
289 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000290 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
291 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000292 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000293 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000294
Werner Lemberg607dec72007-05-15 06:49:37 +00002952007-05-15 Graham Asher <graham.asher@btinternet.com>
296
297 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
298 variable.
299 * src/autofit/afloader.c (af_loader_load_g): Ditto.
300
301 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
302 (open_face_from_buffer): Initialize `stream'.
303 (FT_Request_Metrics): Remove unused variable.
304 Remove redundant `break' statements.
305 (FT_Get_Track_Kerning): Remove unused variable.
306
307 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
308 afm_parse_kern_data): Remove redundant
309 `break' statements.
310 (afm_parser_parse): Ditto.
311 Don't use uninitialized variables.
312
313 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
314 Use `|' operator instead of `^' to set it.
315 Update all users.
316
317 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
318 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
319
320 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
321 comparison.
322 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
323 (TT_Load_Glyph): Remove unused variable.
324
Werner Lemberg8d463a52007-05-13 16:01:55 +00003252007-05-13 Derek Clegg <dclegg@apple.com>
326
327 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
328 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
329
David Turner711cf842007-05-11 14:36:24 +00003302007-05-11 David Turner <david@freetype.org>
331
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000332 * src/cache/ftbasic.c, include/freetype/ftcache.h
333 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
334 functions that allow us to look up glyphs using an FTC_Scaler object
335 to specify the size, making it possible to use fractional pixel
336 sizes.
337
338 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
339 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000340
Werner Lemberg94be20e2007-05-09 20:02:55 +00003412007-05-09 Graham Asher <graham.asher@btinternet.com>
342
343 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
344 (af_latin_metrics_scale_dim): Fix compiler warnings.
345
Werner Lemberg41271032007-05-06 04:51:48 +00003462007-05-06 Werner Lemberg <wl@gnu.org>
347
348 * builds/win32/visualce/freetype.sln: Removed, as requested by
349 Vincent.
350
Werner Lembergdf49e692007-05-04 06:30:05 +00003512007-05-04 Vincent RICHOMME <richom.v@free.fr>
352
353 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
354 PC targets.
355
356 * docs/CHANGES: Document them.
357
3582007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000359
360 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
361 mmap (which might happen on some RTOS). From Savannah patch #5909.
362
Werner Lemberg106eaf12007-05-03 07:07:47 +00003632007-05-03 Werner Lemberg <wl@gnu.org>
364
365 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
366 * include/freetype/freetype.h (FT_Set_Char_Size): Update
367 documentation.
368
Werner Lemberg1b5267d2007-04-28 21:06:15 +00003692007-04-28 Victor Stinner <victor.stinner@inl.fr>
370
371 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
372 `cmap'.
373
Werner Lembergcc712a22007-04-27 17:16:50 +00003742007-04-27 Werner Lemberg <wl@gnu.org>
375
376 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
377 number of points in contours. Problem reported by Victor Stinner
378 <victor.stinner@haypocalc.com>.
379 (TT_Process_Simple_Glyph): Synchronize variable types.
380
Werner Lemberg45bb18f2007-04-26 06:26:35 +00003812007-04-26 Werner Lemberg <wl@gnu.org>
382
383 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
384 zero in case of error. This fixes Savannah bug #19689.
385
David Turnera8b45e62007-05-11 14:10:30 +00003862007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
387
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000388 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
389 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000390
Werner Lembergfcc1f472007-04-10 11:51:50 +00003912007-04-10 Martin Horak <horakm@centrum.cz>
392
393 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
394 Ignore `hhea' table. This fixes Savannah bug #19261.
395
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003962007-04-09 Werner Lemberg <wl@gnu.org>
397
398 * Version 2.3.4 released.
399 =========================
400
401
402 Tag sources with `VER-2-3-4'.
403
404 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
405 version number to 2.3.4.
406
407 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
408 builds/win32/visualc/freetype.dsp,
409 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
410
411 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
412
413 * builds/unix/configure.raw (version_info): Set to 9:15:3.
414
Werner Lembergf4a52a62007-04-09 08:40:11 +00004152007-04-09 Martin Horak <horakm@centrum.cz>
416
417 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
418 memory stream to avoid a crash with the incremental memory
419 interface (Savannah bug #19260).
420
David Turner1dcb4442007-04-06 08:19:04 +00004212007-04-06 David Turner <david@freetype.org>
422
Werner Lembergc81cf612007-04-06 09:28:23 +0000423 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
424 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000425
Werner Lemberg9f83e052007-04-05 02:28:23 +00004262007-04-04 Werner Lemberg <wl@gnu.org>
427
428 * Version 2.3.3 released.
429 =========================
430
431
432 Tag sources with `VER-2-3-3'.
433
434 * docs/CHANGES: Mention CVE-2007-1351.
435
David Turner7338ec22007-04-03 14:30:34 +00004362007-04-03 David Turner <david@freetype.org>
437
438 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000439 if one of the resolution values is 0, treat it as if it were the
440 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000441
David Turnere6472c12007-04-02 13:13:54 +00004422007-04-02 David Turner <david@freetype.org>
443
Werner Lemberg94f12272007-04-03 07:19:53 +0000444 Add special code to detect `extra-light' fonts and do not snap their
445 stem widths too much to avoid bizarre hinting effects.
446
447 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
448 `extra_light' members.
449
450 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
451 them.
452 (af_latin_metrics_scale_dim): Set `extra_light'.
453 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000454
David Turner3f539692007-03-28 14:53:40 +00004552007-03-28 David Turner <david@freetype.org>
456
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000457 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000458 padding.
459
Werner Lemberga08b2172007-03-28 07:17:17 +00004602007-03-28 Werner Lemberg <wl@gnu.org>
461
462 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
463 gracefully.
464 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000465 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000466 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
467 number of code points in Unicode.
468
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000469 * builds/win32/visualc/index.html,
470 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000471 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000472 s/232/233/.
473
474 * docs/CHANGES: Mention ftdiff.
475
David Turner3b242d32007-03-26 12:03:04 +00004762007-03-26 David Turner <david@freetype.org>
477
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000478 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
479 corresponding code.
480 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000481
Werner Lemberga08b2172007-03-28 07:17:17 +0000482 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000483 computations in order to ignore single-point contours. These are
484 never rasterized and correspond in certain fonts to mark-attach
485 points that are very far from the glyph's real outline, ruining the
486 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000487
Werner Lemberga08b2172007-03-28 07:17:17 +0000488 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000489 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000490 Otherwise code that uses them will most certainly ruin the fixed
491 advance property.
David Turner23553d62007-03-26 13:37:17 +0000492
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000493 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
494 documentation and bump version number to 2.3.3.
495
496 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
497
498 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000499
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00005002007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
501
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000502 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
503 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000504 * builds/vms/ftconfig.h: Ditto.
505 * include/freetype/config/ftconfig.h: Ditto.
506
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00005072007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
508
Werner Lemberg14ffe092007-03-22 06:12:43 +0000509 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
510 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000511 proposed by Sean McBride:
512 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
513
5142007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
515
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000516 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
517 setjmp, proposed by Sean McBride:
518 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
519
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00005202007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
521
Werner Lembergc9f6c662007-03-21 13:30:14 +0000522 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
523 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
524 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000525
David Turner74c34eb2007-03-18 07:19:31 +00005262007-03-18 David Turner <david@freetype.org>
527
Werner Lembergc9f6c662007-03-21 13:30:14 +0000528 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
529 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000530
Werner Lembergc9f6c662007-03-21 13:30:14 +0000531 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000532
David Turner89020d92007-03-17 17:48:57 +00005332007-03-17 David Turner <david@freetype.org>
534
Werner Lembergc9f6c662007-03-21 13:30:14 +0000535 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
536 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000537
Werner Lemberg25d592a2007-03-09 07:59:35 +00005382007-03-09 Werner Lemberg <wl@gnu.org>
539
540 * Version 2.3.2 released.
541 =========================
542
543
544 Tag sources with `VER-2-3-2'.
545
546 * builds/win32/visualc/index.html,
547 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000548 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000549 s/231/232/.
550
David Turner3a51afa2007-03-08 10:50:38 +00005512007-03-08 David Turner <david@freetype.org>
552
Werner Lemberg25d592a2007-03-09 07:59:35 +0000553 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000554
Werner Lemberg25d592a2007-03-09 07:59:35 +0000555 * builds/unix/configure.raw (version_info): Set to 9:13:3.
556
557 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
558
559 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000560
Werner Lemberg1e259de2007-03-08 15:39:21 +0000561 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
562 function to work properly, over-writing user-provided buffers in
563 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000564
David Turner121cad52007-03-08 16:43:50 +0000565
Werner Lemberg3d92f082007-03-06 11:59:24 +00005662007-03-05 Werner Lemberg <wl@gnu.org>
567
568 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
569 macro for `strstr'.
570
571 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
572 `trick_names', as suggested by Ivan Nincic.
573
David Turner085bc6e2007-03-05 17:40:03 +00005742007-03-05 David Turner <david@freetype.org>
575
Werner Lembergd112cf02007-03-06 12:06:56 +0000576 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
577 case FT_Init_FreeType fails for some reason. Problem reported by
578 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000579
Werner Lembergd112cf02007-03-06 12:06:56 +0000580 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
581 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
582 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
583 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000584
Werner Lembergd112cf02007-03-06 12:06:56 +0000585 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
586 signed values, not unsigned ones. Problem reported by Johannes
587 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000588
David Turner601aefe2007-02-21 16:47:49 +00005892007-02-21 David Turner <david@freetype.org>
590
Werner Lembergde5e6862007-02-25 21:06:43 +0000591 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
592 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000593
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00005942007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
595
596 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
597 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
598 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
599
Werner Lemberga0915172007-02-16 08:12:50 +00006002007-02-16 Werner Lemberg <wl@gnu.org>
601
602 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
603 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
604
David Turner2c4500e2007-02-14 15:08:47 +00006052007-02-14 David Turner <david@freetype.org>
606
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000607 It seems that the following changes fix most of the known
608 interpreter problems with my fonts, but more testing is needed,
609 though.
610
611 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
612 (TT_MulFix14): Rewrite.
613 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
614 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000615
Werner Lembergc6a14082007-02-12 22:08:15 +00006162007-02-12 Werner Lemberg <wl@gnu.org>
617
618 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
619 warnings.
620
621 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
622 (bdf_interpret_style): Ditto.
623
David Turnerc0f9c4a2007-02-12 14:55:03 +00006242007-02-12 David Turner <david@freetype.org>
625
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000626 Simplify projection and dual-projection code interface.
627
Werner Lemberg406d25f2007-02-12 22:01:18 +0000628 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
629 FT_Vector' as argument type.
630 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
631 Updated.
632 (CUR_fast_project, CUR_fast_dualproj): New macros.
633 (Project, Dual_Project, Project_x, Project_y): Updated.
634 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
635 macros.
636
637
638 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
639 adjustments for the non-light auto-hinted modes. Gets rid of
640 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000641
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000642 * src/autofit/aflatin.c (af_latin_hints_link_segments,
643 af_latin_hints_compute_edges): Slight optimization of the segment
644 linker and better handling of serif segments to get rid of broken
645 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000646
David Turnerc0f9c4a2007-02-12 14:55:03 +0000647
Werner Lemberg442bfb82007-02-12 21:44:10 +0000648 Introduce new string functions and the corresponding macros to get
649 rid of various uses of strcpy and other `evil' functions, as well as
650 to simplify a few things.
651
652 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
653 ft_mem_strcpyn): New declarations.
654 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
655 macros.
656 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
657 functions.
658
659 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
660 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
661 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
662 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
663 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
664 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
665 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
666 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000667
Werner Lemberg406d25f2007-02-12 22:01:18 +0000668 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
669
Werner Lemberg582067d2007-02-11 15:03:05 +00006702007-02-11 Werner Lemberg <wl@gnu.org>
671
672 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
673 non-spacing glyphs.
674
Werner Lemberg8f474532007-02-07 08:31:01 +00006752007-02-07 Tom Parker <palfrey@tevp.net>
676
677 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
678 pointer.
679
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006802007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
681
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000682 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
683 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000684 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000685 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
686 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
687 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
688 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000689
690 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
691 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000692 * builds/mac/ftmac.c: Ditto.
693
6942007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
695
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000696 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000697 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000698 #include <ftmac.c>.
699
7002007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
701
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000702 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
703 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
704 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
705 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
706 FT_GetFilePath_From_Mac_ATS_Name.
707 * builds/mac/ftmac.c: Ditto.
708
7092007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
710
Werner Lembergdcbb7082007-02-08 08:54:09 +0000711 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000712 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
713 for passing to FT_New_Face_From_FSSpec.
714
7152007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
716
Werner Lembergdcbb7082007-02-08 08:54:09 +0000717 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000718 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000719
720 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
721 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000722 * builds/mac/ftmac.c (OS_INLINE): Ditto.
723
Werner Lemberg313d7772007-02-01 08:10:45 +00007242007-02-01 Werner Lemberg <wl@gnu.org>
725
726 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
727 Explain why applications shouldn't use it. Found by Alexei.
728
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007292007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000730
731 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
732 message.
733
734 * src/gxvalid/gxvmort1.c
735 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
736 message.
737
Werner Lemberg53935932007-01-31 08:53:02 +00007382007-01-31 Werner Lemberg <wl@gnu.org>
739
740
741 * Version 2.3.1 released.
742 =========================
743
744
745 Tag sources with `VER-2-3-1-FINAL'.
746
747 * builds/win32/visualc/freetype.dsp,
748 builds/win32/visualc/freetype.vcproj: s/230/231/.
749 * builds/win32/visualc/index.html: s/221/231/.
750
751 * vms_make.com: Add `ftgasp'.
752
David Turnera7ee6082007-01-30 10:33:53 +00007532007-01-30 David Turner <david@freetype.org>
754
Werner Lemberg53935932007-01-31 08:53:02 +0000755 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000756
Werner Lemberg53935932007-01-31 08:53:02 +0000757 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000758
Werner Lemberg25d592a2007-03-09 07:59:35 +0000759 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000760 s/2.3.0/2.3.1/.
761
762 * builds/unix/configure.raw (version_info): Set to 9:12:3.
763
764
765 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
766 (af_loader_load_g): Disable the warper (i.e., the light hinting
767 improvements) to make a 2.3.1 bugfix release before introducing a
768 new feature. This should give us more time to tune and improve the
769 warper for the next release.
770
771 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000772
David Turnerd91eebd2007-01-26 15:05:41 +00007732007-01-25 David Turner <david@freetype.org>
774
Werner Lembergbf241762007-01-26 16:08:49 +0000775 For light auto-hinting, improve glyph advance widths and resurrect
776 normal/full hinting to its normal quality.
777
778 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
779 and `xmax_delta'.
780 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
781 and `xmax_delta'.
782
783 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
784 preprocessor conditional with if-clause, handling both light and
785 normal mode.
786
787 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
788 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000789
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00007902007-01-25 Werner Lemberg <wl@gnu.org>
791
792 * docs/release: Updated -- Savannah uses a new uploading scheme.
793
David Turnera42567b2007-01-25 12:23:37 +00007942007-01-25 David Turner <david@freetype.org>
795
Werner Lembergd7855662007-01-25 13:53:56 +0000796 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000797
Werner Lembergd7855662007-01-25 13:53:56 +0000798 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
799 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
800 functions.
David Turnera42567b2007-01-25 12:23:37 +0000801
Werner Lembergd7855662007-01-25 13:53:56 +0000802 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000803
Werner Lembergb1be9e82007-01-25 11:50:00 +00008042007-01-25 Werner Lemberg <wl@gnu.org>
805
806 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000807 correctly in a sanity check. Since this function is only used to
808 load local and global functions, any charstring that called the last
809 local/global function would fail otherwise. This fixes Savannah bug
810 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000811
812 * docs/CHANGES: Document it.
813
David Turnerb6de8d12007-01-23 15:51:50 +00008142007-01-23 David Turner <david@freetype.org>
815
Werner Lembergb1be9e82007-01-25 11:50:00 +0000816 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
817 prevented compilation when disabling both the unpatented and the
818 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000819
Werner Lembergb1be9e82007-01-25 11:50:00 +0000820
821 Fix and enable the warper to improve `light' hinting mode. This is
822 not necessarily a final version, but it seems to work well.
823
824 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
825 Disable code.
826 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
827 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
828
829 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
830 (af_warper_compute_line_best): Fix array size of `scores'.
831 (af_warper_compute): Better handling of border cases.
832 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
833 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000834
Werner Lemberg011d1112007-01-21 09:36:00 +00008352007-01-21 Werner Lemberg <wl@gnu.org>
836
Werner Lemberg42b63b22007-01-21 21:01:33 +0000837 * ChangeLog: Split off older entries into...
838 * ChangeLog.22: This new file.
839
8402007-01-21 Werner Lemberg <wl@gnu.org>
841
Werner Lemberg555258f2007-01-21 09:46:37 +0000842 * docs/CHANGES: Document SHZ fix.
843
8442007-01-21 George Williams <gww@silcom.com>
845
846 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
847 points.
848
8492007-01-21 Werner Lemberg <wl@gnu.org>
850
Werner Lemberg011d1112007-01-21 09:36:00 +0000851 * src/sfnt/ttmtx.c (tt_face_get_metrics)
852 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
853
Werner Lemberg87a5a432007-01-17 12:44:39 +00008542007-01-17 Werner Lemberg <wl@gnu.org>
855
Werner Lembergb8003292007-01-17 12:56:25 +0000856
857 * Version 2.3.0 released.
858 =========================
859
860
861 Tag sources with `VER-2-3-0-FINAL'.
862
8632007-01-17 Werner Lemberg <wl@gnu.org>
864
Werner Lemberg87a5a432007-01-17 12:44:39 +0000865 * docs/release: Updated.
866
David Turner22122722007-01-16 20:06:44 +00008672007-01-16 David Turner <david@freetype.org>
868
Werner Lemberg87a5a432007-01-17 12:44:39 +0000869 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
870 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
871 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
872 warnings.
David Turner22122722007-01-16 20:06:44 +0000873
Werner Lemberg267e1d72007-01-15 07:48:09 +00008742007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
875
876 * builds/amiga/makefile, builds/amiga/makefile.os4,
877 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
878
879 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
880
Werner Lemberg8c4120d2007-01-15 06:42:40 +00008812007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
882
883 Fix various compiler warnings.
884
885 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
886 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
887 s/index/strike_index/.
888 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
889
890 * src/gxvalid/gxvmorx5.c
891 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
892
893 * src/truetype/ttinterp.c (Compute_Point_Displacement),
894 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
895 uninitialized variables.
896
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008972007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
898
899 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
900
Werner Lemberg281c1482007-01-13 22:50:51 +00009012007-01-13 Werner Lemberg <wl@gnu.org>
902
903 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
904 versions up to 0x3FF without complaining.
905
Werner Lembergac250b22007-01-13 14:01:36 +00009062007-01-13 Derek Clegg <dclegg@apple.com>
907
908 Add FT_Get_PS_Font_Info interface to CFF driver.
909
910 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
911 (CFF_FontRec): Add `font_info' field.
912
913 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
914 (cff_font_done): Free font->font_info if necessary.
915
916 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
917 (cff_service_ps_info): Register cff_ps_get_font_info.
918
Werner Lemberg23df31a2007-01-13 08:45:00 +00009192007-01-13 Werner Lemberg <wl@gnu.org>
920
921 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
922 with C++ compiler.
923
924 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
925 af_glyph_hints_dump_edges): Ditto.
926
927 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
928 `modules.cfg').
929
930 * src/sfnt/ttsbit0.h: Remove.
931
932 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
933
Werner Lemberg27cf9de2007-01-13 07:34:23 +00009342007-01-12 David Turner <david@freetype.org>
935
936 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
937 bug in the bitmap emboldener if the pitch of the source bitmap is
938 much larger than its width.
939
940 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
941 compilation warning.
942
Werner Lemberg6d96d312007-01-12 10:30:19 +00009432007-01-12 Werner Lemberg <wl@gnu.org>
944
945 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
946 `automake' CVS module from sources.redhat.com.
947
Werner Lemberg17432b52007-01-12 09:28:44 +00009482007-01-11 Werner Lemberg <wl@gnu.org>
949
950 * src/type1/t1load.c (is_space): Removed.
951 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
952 (parse_charstrings): Use IS_PS_TOKEN.
953
954
955 * autogen.sh: Avoid bash specific syntax.
956
David Turner038ace22007-01-11 15:00:59 +00009572007-01-11 David Turner <david@freetype.org>
958
Werner Lemberg17432b52007-01-12 09:28:44 +0000959 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000960
Werner Lemberg17432b52007-01-12 09:28:44 +0000961 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000962
Werner Lemberg17432b52007-01-12 09:28:44 +0000963 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
964 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000965 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000966
Werner Lemberg17432b52007-01-12 09:28:44 +0000967 * autogen.sh: Small fix to get it working on Mac OS X properly:
968 The issue is that GNU libtool is called `glibtool' on this platform,
969 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000970
David Turner2628ea92007-01-10 13:15:56 +00009712007-01-10 David Turner <david@freetype.org>
972
Werner Lemberg17432b52007-01-12 09:28:44 +0000973 * all-sources: Tag all sources with VER-2-3-0-RC1 and
974 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000975
Werner Lemberg17432b52007-01-12 09:28:44 +0000976 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
977 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
978 version number to 2.3.0.
979
980 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
981 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000982
983 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000984 include/freetype/ftlcdfil.h: Update reference documentation with
985 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000986
Werner Lemberg17432b52007-01-12 09:28:44 +0000987 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
988 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000989
Werner Lembergbf02d392007-01-10 07:07:37 +00009902007-01-10 Derek Clegg <dclegg@apple.com>
991
992 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
993 values.
994
David Turnerf48b60e2007-01-08 15:15:32 +00009952007-01-08 David Turner <david@freetype.org>
996
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000997 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000998
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000999 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1000 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001001 corresponding to a given character pixel size.
1002
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001003 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1004 `gasp' table, in order to avoid potential problems with later
1005 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001006
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001007 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1008 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001009
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001010 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1011 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1012 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1013 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001014
Werner Lemberge6b6f372007-01-07 00:06:47 +000010152007-01-07 Werner Lemberg <wl@gnu.org>
1016
Werner Lembergb8004d22007-01-07 09:13:38 +00001017 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1018 Type 11 fonts.
1019 Scan for `/sfnts' token.
1020
10212007-01-07 Werner Lemberg <wl@gnu.org>
1022
1023 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001024
Werner Lembergbe5f7972007-01-06 07:51:48 +000010252007-01-06 Werner Lemberg <wl@gnu.org>
1026
1027 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1028 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1029
David Turnera8cf42b2007-01-04 16:46:46 +000010302007-01-04 David Turner <david@freetype.org>
1031
Werner Lembergf6294392007-01-06 07:47:45 +00001032 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1033 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001034
Werner Lembergf6294392007-01-06 07:47:45 +00001035
1036 Do not allocate interpreter-specific tables in memory if we are not
1037 going to load glyphs with the bytecode interpreter anyway.
1038
1039 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1040 only if glyph is hinted.
1041 Updated.
1042 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1043 and `cvs_ready'.
1044 Add `tt_size_ready_bytecode' declaration.
1045 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1046 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1047 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1048 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1049 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001050
David Turner91a34022007-01-05 14:47:08 +00001051
Werner Lembergf6294392007-01-06 07:47:45 +00001052 Don't extract the metrics table from the SFNT font file. Instead,
1053 reparse it on each glyph load. The runtime difference is not
1054 noticeable, and it can save a lot of heap memory when memory-mapped
1055 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001056
Werner Lembergf6294392007-01-06 07:47:45 +00001057 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1058 `horz_metrics_offset' and `vert_metrics_ofset'.
1059 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1060 Updated.
1061
1062
1063 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1064
1065
1066 Do not load the CFF index offsets into memory, since this wastes a
1067 *lot* of heap memory with large Asian CFF fonts. There is no
1068 significant performance loss.
1069
1070 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1071 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1072 `data_size'.
1073 (CFF_CharsetRec): Add field `num_glyphs'.
1074
1075 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1076 cff_charset_cid_to_gindex): New functions.
1077 (cff_new_index): Renamed to...
1078 (cff_index_init): This. Update all callers.
1079 Updated -- some code has been moved to `cff_index_load_offsets'.
1080 (cff_done_index): Renamed to...
1081 (cff_index_done): This. Update all callers.
1082 (cff_index_get_pointers, cff_index_access_element): Updated to use
1083 stream offsets.
1084 (cff_charset_compute_cids): Set `num_glyphs' field.
1085 (cff_encoding_load): Updated.
1086
1087 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001088
10892007-01-04 David Turner <david@freetype.org>
1090
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001091 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1092 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001093
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001094 * README.CVS: Add common problem description and solution
1095 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001096
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001097 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001098
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001099 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001100
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001101 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001102
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001103 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1104 (TWorker): This.
1105 Remove `count_table' and `memory'.
1106 Make `grays' a pointer.
1107 (TRaster): New structure.
1108 (count_table): New static array.
1109 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1110 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1111 ft_black_set_mode, ft_black_render): Updated.
1112 (ft_black_init): Don't initialize `count_table'.
1113 (ft_black_reset): Use the render pool. This saves about 6KB of
1114 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001115
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001116 * src/smooth/ftgrays.c (TRaster): Replaced with...
1117 (TWorker): This.
1118 Remove `memory'.
1119 (TRaster): New structure.
1120
1121 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1122 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1123 gray_render_span, gray_raster_render): Updated.
1124 (gray_raster_reset): Use the render pool. This saves about 6KB of
1125 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001126
David Turner8a6c44e2007-01-04 17:03:11 +00001127 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1128 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001129 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1130 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1131 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001132
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001133 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1134 Remove a typo that results in no hinting and a memory leak with some
1135 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001136
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001137 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001138 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001139 CFF_Faces in it. We need to close all faces before destroying the
1140 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001141
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000011422007-01-02 Werner Lemberg <wl@gnu.org>
1143
1144 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1145 Remove compiler warning.
1146
David Turner9207e002007-01-02 16:58:13 +000011472007-01-02 David Turner <david@freetype.org>
1148
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001149 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001150
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011512006-12-31 Masatake YAMATO <jet@gyve.org>
1152
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001153 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1154 function.
1155 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001156 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001157 `gxv_kern_subtable_fmt0_pairs_validate'.
1158
David Turner115b4422006-12-22 11:37:05 +000011592006-12-22 David Turner <david@freetype.org>
1160
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001161 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1162 warnings.
David Turner115b4422006-12-22 11:37:05 +00001163
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001164 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1165 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001166
Werner Lemberg4755bf72006-12-16 08:58:44 +000011672006-12-16 Anders Kaseorg <anders@kaseorg.com>
1168
1169 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1170 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1171
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000011722006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1173
Werner Lemberg9b774e22007-01-16 06:11:27 +00001174 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001175 sync with the modification by Jens Claudius on 2006-08-22; cf.
1176 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 +00001177
11782006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1179
1180 * src/base/ftmac.c: Specialized for Mac OS X only.
1181 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1182 * builds/unix/configure.raw: Ditto. When explicit switches for
1183 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1184 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1185
11862006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1187
1188 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1189 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1190 instead of src/base/ftmac.c
1191 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1192 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1193 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1194 that cannot be built at present.
1195
11962006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1197
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001198 * src/base/ftobjs.c: Improvement of resource fork handler for
1199 POSIX, cf.
1200 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001201 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1202 format or .dfont, to simulate the face index number counted by ftmac.c.
1203 (IsMacResource): Return the number of scalable faces correctly.
1204
Werner Lembergec5b4502006-12-10 07:51:38 +000012052006-12-10 Werner Lemberg <wl@gnu.org>
1206
1207 * builds/toplevel.mk (version): Protect against `distclean' target.
1208
Werner Lembergb26b3142006-12-09 20:01:43 +000012092006-12-09 Werner Lemberg <wl@gnu.org>
1210
1211 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1212 or `type'.
1213
1214 * builds/freetype.mk (version): Extracted from freetype.h, using
1215 GNU make's built-in string functions.
1216 (refdoc): Use $(version) instead of static version number.
1217
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000012182006-12-08 Werner Lemberg <wl@gnu.org>
1219
1220 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1221
Werner Lemberg15c29502006-12-09 07:29:54 +000012222006-12-08 Vladimir Volovich <vvv@vsu.ru>
1223
1224 * src/tools/apinames (State): Remove final comma in structure -- xlc
1225 v5 under AIX 4.3 doesn't like this.
1226
David Turnerdbf3b432006-12-07 21:18:09 +000012272006-12-07 David Turner <david@freetype.org>
1228
Werner Lemberg256a3512006-12-08 06:49:33 +00001229 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1230 to the spacing of auto-fitted glyphs. This only impacts rare
1231 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001232
Werner Lemberg11171312006-12-03 09:43:40 +000012332006-12-03 Werner Lemberg <wl@gnu.org>
1234
1235 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1236
Werner Lemberg960ba592006-12-01 08:20:47 +000012372006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001238
Werner Lemberg960ba592006-12-01 08:20:47 +00001239 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1240 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1241 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001242
David Turner80658e52006-11-28 08:09:20 +00001243
Werner Lemberg960ba592006-12-01 08:20:47 +00001244 * include/freetype/ftxf86.h: Fix and extend comment so that it
1245 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001246
Werner Lemberg960ba592006-12-01 08:20:47 +00001247 * include/freetype/ftchapters.h: Add `font_format' section.
1248
1249
1250 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1251 to TOC in index page.
1252
12532006-11-28 David Turner <david@freetype.org>
1254
1255 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1256 trying to render into a zero-width/height bitmap, not an error code.
1257
1258 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1259
1260 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1261 ones instead.
1262
1263 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1264 variable.
David Turner80658e52006-11-28 08:09:20 +00001265
Werner Lemberg8636c292006-11-26 22:28:13 +000012662006-11-26 Pierre Hanser <hanser@club-internet.fr>
1267
1268 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1269
Werner Lemberg960ba592006-12-01 08:20:47 +000012702006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001271
Werner Lemberg960ba592006-12-01 08:20:47 +00001272 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1273 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1274 Add stubs to link the `ftgrid' test program when debugging is
1275 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001276
Werner Lemberg960ba592006-12-01 08:20:47 +000012772006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001278
1279 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001280 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1281
1282 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1283 Emit more sensible information.
1284
1285 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1286
1287 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1288 rounding of blue values.
1289 (af_latin_hints_compute_segments): Hint segment heights.
1290 (af_latin_hints_link_segments): Reduce `len_score' value.
1291 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1292 value and use `height' member for comparisons.
1293 (af_latin_hint_edges): Extend logging message.
1294 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001295
Werner Lemberg91959bf2006-11-22 10:36:55 +000012962006-11-22 Werner Lemberg <wl@gnu.org>
1297
1298 Fix Savannah bug #15553.
1299
1300 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1301 program after a change from mono to grayscaling (and vice versa).
1302 Use correct constant for comparison to get `exec->grayscale'.
1303
Werner Lemberg913a3652006-11-19 09:19:17 +000013042006-11-18 Werner Lemberg <wl@gnu.org>
1305
1306 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001307 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001308 This patch fixes Savannah bug #18301.
1309
1310 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1311 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1312 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1313 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1314 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1315 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1316 (FNT_Load_Glyph): Check validity of `glyph_index'.
1317
David Turner7bab6ae2006-11-13 11:25:06 +000013182006-11-13 David Turner <david@freetype.org>
1319
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001320 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1321 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001322
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001323 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1324 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1325 when building the library to change the default LCD filter to be
1326 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001327
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001328 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001329
David Turner8765c712006-11-10 16:49:42 +000013302006-11-10 David Turner <david@freetype.org>
1331
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001332 * src/smooth/ftsmooth.c: API change for the LCD
1333 filter. The FT_LcdFilter value is an enumeration describing which
1334 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1335 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1336 algorithm which produces strong color fringes for everything
1337 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001338
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001339 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1340 second parameter to an enum type.
1341
1342 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1343 (_ft_lcd_filter): Rename to...
1344 (_ft_lcd_filter_fir): This.
1345 Update parameters.
1346 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1347 (FT_Library_Set_LcdFilter): Update parameters.
1348 Handle new filter modes.
1349
1350 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1351 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1352 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1353 callback and update other fields.
1354
1355 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1356 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1357 Other minor improvements.
1358
1359 * src/autofit/aflatin.c: Various tiny improvements that drastically
1360 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1361 (af_latin_hints_compute_edges): Fix typo.
1362 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001363
David Turner4e9cc3c2006-11-09 16:31:52 +000013642006-11-09 David Turner <david@freetype.org>
1365
Werner Lemberg49c77a82006-11-09 21:51:57 +00001366 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1367 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001368
Werner Lemberg5e430892006-11-07 09:35:03 +000013692006-11-07 Zhe Su <james.su@gmail.com>
1370
1371 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1372 also.
1373
Werner Lemberg111b5ae2006-11-03 09:40:12 +000013742006-11-03 Werner Lemberg <wl@gnu.org>
1375
1376 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1377
David Turner40604742006-11-02 16:37:35 +000013782006-11-02 David Turner <david@freetype.org>
1379
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001380 Add a few tweaks to better handle serif fonts.
1381 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001382
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001383 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1384 segments that are less than 1.5 pixels high. This gets rid of
1385 *many* corner cases with serifs.
1386 (af_latin_align_linked_edge): Add logging message.
1387 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1388 Add logging messages.
1389 Handle AF_EDGE_FLAG flag specially.
1390
1391 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1392 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1393
1394 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1395 Update external declarations.
1396 (af_corner_orientation, af_corner_is_flat): Replaced by...
1397
1398 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1399 ft_corner_is_flat): These declarations.
1400
1401 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1402 Comment out. Replaced by...
1403
1404 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1405 These functions. Update all callers.
1406 (FT_Add64) [!FT_LONG64]: Simplify.
1407
1408 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1409 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1410 production of garbage by missing lots of segments.
1411
1412 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1413
1414 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1415 [AF_DEBUG]: Set _af_debug_hints.
1416
1417
1418 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1419 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1420 and ft_corner_orientation.
1421
1422
1423 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001424
Werner Lemberge88c5262006-10-24 05:46:26 +000014252006-10-24 Werner Lemberg <wl@gnu.org>
1426
1427 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1428
1429 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1430 as argument.
1431
David Turnera1861392006-10-23 16:00:59 +000014322006-10-23 Zhe Su <zsu@novell.com>
1433
Werner Lemberg715e96e2006-10-24 05:28:45 +00001434 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1435 better deal with broken Asian fonts with strange glyphs, having
1436 self-intersections and other peculiarities. The used algorithm is
1437 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001438
David Turnere140f142006-10-23 08:56:57 +000014392006-10-23 David Turner <david@freetype.org>
1440
Werner Lemberg715e96e2006-10-24 05:28:45 +00001441 Speed up the CFF font loader. With some large CFF fonts,
1442 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001443
Werner Lemberg715e96e2006-10-24 05:28:45 +00001444 * src/cff/cffload.c (cff_get_offset): Removed.
1445 (cff_new_index): Inline functionality of `cff_get_offset'.
1446 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1447 (cff_charset_done): Call `cff_charset_free_cids'.
1448 (cff_charset_load): Call `cff_charset_compute_cids'.
1449 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1450
1451 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1452 with FT_NEXT_XXX.
1453
1454
1455 Speed up the Postscript hinter, with more than 100% speed increase
1456 on my machine.
1457
1458 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1459 psh_corner_orientation): New functions.
1460 (psh_glyph_compute_inflections): Merge loops for efficiency.
1461 Use `psh_corner_orientation'.
1462 (psh_glyph_init): Use `psh_corner_is_flat'.
1463 (psh_hint_table_find_strong_point): Renamed to...
1464 (psh_hint_table_find_strong_points): This.
1465 Rewrite, adding argument to handle all points at once.
1466 Update all callers.
1467 (PSH_MAX_STRONG_INTERNAL): New macro.
1468 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001469
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000014702006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1471
1472 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001473 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001474
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014752006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1476
1477 * docs/INSTALL.CROSS: New document file for cross-building.
1478
1479 * builds/unix/configure.raw: Preliminary cross-building support.
1480 Find native C compiler and pass it by CC_BUILD, and
1481 find suffix for native executable and pass it by EXEEXT_BUILD.
1482 Also suffix for target executable is passed by EXEEXT.
1483
Werner Lembergb9e6d692006-10-15 08:58:40 +00001484 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1485 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001486 CC_BUILD and EXEEXT_BUILD.
1487
Werner Lembergb9e6d692006-10-15 08:58:40 +00001488 * builds/exports.mk (APINAMES_EXE): Change the extension for
1489 apinames from the suffix for target (E) to that for building host
1490 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001491
Werner Lemberg82a07e92006-10-12 06:20:44 +000014922006-10-12 Werner Lemberg <wl@gnu.org>
1493
1494 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1495 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1496 which reference those files.
1497
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014982006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1499
Werner Lembergb9e6d692006-10-15 08:58:40 +00001500 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1501 embedded in freetype2.pc and freetype-config. Use it to record
1502 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001503
1504 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1505
1506 * builds/unix/freetype-config.in: Ditto.
1507
Werner Lemberg28e17d92006-10-11 17:27:47 +000015082006-10-11 Werner Lemberg <wl@gnu.org>
1509
1510 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1511 development.
1512
Jens Claudius336d2292006-10-03 08:53:37 +000015132006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1514
1515 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1516 argument to ft_setjmp.
1517
1518 * include/freetype/internal/ftvalid.h: Add comment that
1519 ft_validator_run must not be used.
1520
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015212006-10-01 Werner Lemberg <wl@gnu.org>
1522
1523 * src/base/ftbase.c: Undo change from 2006-09-30.
1524
1525 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1526
15272006-09-30 David Turner <david@freetype.org>
1528
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001529 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1530 s/unpatented_hinting/ignore_unpatented_hinter/.
1531 Update all callers.
1532
1533 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1534 auto-hinting shall be used or not.
1535
1536 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001537
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015382006-09-30 Werner Lemberg <wl@gnu.org>
1539
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001540 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1541 in use).
1542
1543 * src/base/ftbase.c: Include `ftlcdfil.c'.
1544
Werner Lemberg9b15ea32006-09-29 18:22:11 +000015452006-09-29 Werner Lemberg <wl@gnu.org>
1546
1547 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1548 overlapping segments. Bug reported by Stefan Koch.
1549
David Turnerad830712006-09-27 16:20:59 +000015502006-09-28 David Turner <david@freetype.org>
1551
Werner Lemberg2c002e12006-09-29 21:31:53 +00001552 Fix a bug in the automatic unpatented hinting support which prevents
1553 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001554
Werner Lemberg2c002e12006-09-29 21:31:53 +00001555 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1556 s/force_autohint/unpatented_hinting/. Update all callers.
1557
1558 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1559
1560 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001561
David Turner8a317cf2006-09-27 07:52:48 +000015622006-09-27 David Turner <david@freetype.org>
1563
Werner Lemberg2c002e12006-09-29 21:31:53 +00001564 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001565
David Turner8a317cf2006-09-27 07:52:48 +00001566
David Turnere140f142006-10-23 08:56:57 +00001567 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001568 In a default build, the function `FT_Library_SetLcdFilter' returns
1569 `FT_Err_Unimplemented_Feature'; you need to #define
1570 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1571 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001572
Werner Lemberg2c002e12006-09-29 21:31:53 +00001573 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001574
Werner Lemberg2c002e12006-09-29 21:31:53 +00001575 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1576 typedef.
1577 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1578 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001579
Werner Lemberg2c002e12006-09-29 21:31:53 +00001580 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1581 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001582
Werner Lemberg2c002e12006-09-29 21:31:53 +00001583 Handle subpixel rendering.
1584 Simplify function.
1585 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1586 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1587
1588 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1589 pointing to <freetype/ftlcdfil.h>.
1590
1591 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1592 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1593
1594 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001595
Werner Lemberge20df4a2006-09-27 06:29:21 +000015962006-09-26 David Bustin
1597
1598 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1599 correctly. Reported as Savannah bug #17843.
1600
David Turner6f8c6222006-09-26 15:42:44 +000016012006-09-26 David Turner <david@freetype.org>
1602
Werner Lemberg110246c2006-09-26 21:55:44 +00001603 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1604 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1605 horizontal and vertical hinting for the purpose of debugging the
1606 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001607
Werner Lemberg110246c2006-09-26 21:55:44 +00001608 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1609 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001610
Werner Lemberg110246c2006-09-26 21:55:44 +00001611 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1612
1613 * include/freetype/config/ftoption.h, devel/ftoption.h
1614 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1615 we want to compile LCD-optimized rendering code (à la ClearType) or
1616 not. The macro *must* be disabled in default builds of the library
1617 for patent reasons.
1618
1619 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1620 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1621 isn't defined at compile time. This only changes the content of the
1622 rendered glyph to match the one of normal gray-level rendering,
1623 hence clients should not need to be modified.
1624
1625 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001626
Werner Lemberg745ff2c2006-09-19 05:48:02 +000016272006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1628
1629 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1630 LWFN fails and both are available.
1631
David Turnerf3050052006-09-11 12:00:32 +000016322006-09-11 David Turner <david@freetype.org>
1633
Werner Lembergf9644552006-09-12 13:48:10 +00001634 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1635 report their English names through an Apple Roman
1636 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001637
Werner Lembergf9644552006-09-12 13:48:10 +00001638 If the font uses another name entry with language_id == English, it
1639 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001640
Werner Lembergf9644552006-09-12 13:48:10 +00001641 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1642 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001643
Werner Lemberg36d2eab2006-09-05 19:24:34 +000016442006-09-05 Werner Lemberg <wl@gnu.org>
1645
1646 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001647 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001648 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1649 `HAN NOM B.ttf').
1650
1651 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1652
David Turner772e55d2006-09-05 09:45:15 +000016532006-09-05 David Turner <david@freetype.org>
1654
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001655 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001656
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001657 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1658 (TRaster): Remove `count_ex' and `count_ey'.
1659 (gray_find_cell): Remove 2nd and 3rd argument.
1660 (gray_alloc_cell): Merged with `gray_find_cell'.
1661 (gray_record_cell): Simplify.
1662 (gray_set_cell): Rewrite.
1663 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1664 (gray_render_span): Don't use FT_MEM_SET for small values.
1665 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1666 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1667 bitmap scanline.
1668 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001669
David Turneraa557a92006-09-04 16:42:44 +000016702006-09-04 David Turner <david@freetype.org>
1671
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001672 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1673 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001674
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016752006-09-03 Werner Lemberg <wl@gnu.org>
1676
1677 * devel/ftoption.h: Synchronize with
1678 include/freetype/config/ftoption.h.
1679
1680 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1681 variable declaration.
1682 (gray_convert_glyph): Fix compiler warnings.
1683
David Turner6d79f212006-09-01 14:09:35 +000016842006-09-01 David Turner <david@freetype.org>
1685
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001686 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1687 to recognize a few fonts that require the automatic unpatented
1688 loader.
David Turnerbd502952006-09-01 19:05:24 +00001689
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001690 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1691 rasterizer. The speed improvement is between 15% and 25%, depending
1692 on the font data.
1693
1694 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1695 (TCell): Redefine.
1696 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1697 (gray_init_cells): Updated.
1698 (gray_find_cell, gray_alloc_cell): New functions.
1699 (gray_record_cell): Rewritten to use `gray_find_cell' and
1700 `gray_alloc_cell'.
1701 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1702 QSORT_THRESHOLD):
1703 Removed.
1704 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1705 gray_dump_cells): Removed.
1706 (gray_sweep): Rewritten.
1707 (gray_convert_glyph): Rewrite code which used one of the sorting
1708 functions.
1709 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001710
Werner Lembergd898aed2006-08-29 09:50:34 +000017112006-08-29 Dr. Werner Fink <werner@suse.de>
1712
1713 * configure: Make it possible to handle configure options which
1714 have strings containing spaces.
1715
17162006-08-27 David Turner <david@freetype.org>
1717
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001718 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1719 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1720 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1721
1722 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1723 src/truetype/truetype.c, src/truetype/ttdriver.c,
1724 src/truetype/ttgload.c, src/truetype/ttgload.h,
1725 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1726 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1727 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1728
1729 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1730 member `force_autohint'.
1731
1732 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1733
1734 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1735 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001736
Jens Claudiusa787f452006-08-27 11:26:18 +000017372006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1738
1739 Fix miscellaneous compiler warnings.
1740
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001741 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1742 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001743
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001744 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1745 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1746 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001747
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001748 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1749 volatileness of argument to ft_longjmp. Spotted by Werner
1750 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001751
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001752 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1753 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001754
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001755 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1756 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001757
Werner Lembergc4c35b72006-08-27 08:03:46 +000017582006-08-27 Werner Lemberg <wl@gnu.org>
1759
1760 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1761 Reported by Jens.
1762
Jens Claudius088e44e2006-08-22 14:24:30 +000017632006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001764
Jens Claudius088e44e2006-08-22 14:24:30 +00001765 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001766 about addresses of volatile objects passed as function arguments as
1767 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001768
Werner Lembergc4c35b72006-08-27 08:03:46 +00001769 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1770 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001771
1772 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1773 argument `table' a pointer to a volatile object.
1774
1775 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1776 argument `table' a pointer to a volatile object.
1777
Jens Claudius2652bd52006-08-18 17:20:37 +000017782006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1779
1780 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1781 variable `_sfnt' as volatile since it must keep its value across
1782 a call to ft_setjmp.
1783 (gxv_validate): Same for local variables `memory' and `valid'.
1784 (classic_kern_validate): Same for local variables `memory',
1785 `ckern', and `valid'.
1786
1787 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1788 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1789 `jstf', and 'valid'.
1790
1791 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1792 local variable `cmap'.
1793
David Turner9fbfc6a2006-08-16 09:11:31 +000017942006-08-16 David Turner <david@freetype.org>
1795
Werner Lemberg12342992006-08-19 11:18:09 +00001796 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1797 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001798
Werner Lemberg12342992006-08-19 11:18:09 +00001799 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1800 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001801
David Turner33f5f242006-08-16 16:50:55 +00001802
Werner Lemberg12342992006-08-19 11:18:09 +00001803 Improvements to native TrueType hinting. This is a first try,
1804 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1805
1806 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1807 `extra_points2'.
1808
1809 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1810 `orus'.
1811
1812 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1813 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1814 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1815 handle `extra_points2'.
1816
1817 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1818 Remove compiler warning.
1819 (cur_to_arg): Remove macro.
1820 (TT_Hint_Glyph): Updated.
1821 (TT_Process_Simple_Glyph): Handle `orus'.
1822
1823 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1824 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1825 (LOC_Ins_IUP): Renamed to...
1826 (IUP_WorkerRec): This.
1827 Add `orus' member.
1828 (Shift): Renamed to...
1829 (_iup_worker_shift): This.
1830 Updated.
1831 (Interp): Renamed to...
1832 (_iup_worker_interpolate): This.
1833 Updated to handle `orus'.
1834 (Ins_IUP): Updated.
1835
1836 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1837 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001838
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000018392006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1840
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001841 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001842 build ftvalid in ft2demos. This has been inadvertedly changed
1843 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001844
18452006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1846
Werner Lemberg12342992006-08-19 11:18:09 +00001847 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1848 Jens:
1849 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001850
Werner Lemberg12342992006-08-19 11:18:09 +00001851 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1852 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001853
1854 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1855
Jens Claudius9950adc2006-08-13 12:14:36 +000018562006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1857
Werner Lemberg12342992006-08-19 11:18:09 +00001858 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1859 T1_TOKEN_TYPE_KEY.
1860 (T1_FieldRec): Add `dict'.
1861 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1862 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1863 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001864
Werner Lemberg12342992006-08-19 11:18:09 +00001865 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1866 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001867
1868 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1869
1870 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001871 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1872 not T1_TOKEN_TYPE_ANY.
1873 (ps_parser_load_field): Make sure a token that should be a string or
1874 name is really a string or name.
1875 Avoid memory leak if a keyword has been already encountered and its
1876 value is overwritten.
1877 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1878 T1_FIELD_XXX.
1879 (parse_dict): Ignore keywords that occur in the wrong dictionary
1880 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001881
Werner Lemberg12342992006-08-19 11:18:09 +00001882 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1883 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001884
Werner Lemberg12342992006-08-19 11:18:09 +00001885 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1886 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001887
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000018882006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1889
1890 Move creation of field `buildchar' of T1_DecoderRec out of
1891 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1892 of it.
1893
1894 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1895 and `T1_Compute_Max_Advance'.
1896
1897 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1898 Remove field `face', add `len_buildchar'.
1899
1900 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1901 field `buildchar'.
1902
1903 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1904 finisher for T1_Decoder.
1905 (cid_slot_load_glyph): Do not ignore failure when initializing the
1906 T1_Decoder.
1907
1908 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1909 Updated.
1910 (t1_decoder_init): Remove initialization of fields `buildchar' and
1911 `len_buildchar'.
1912 (t1_decoder_done): Remove deallocation of field `buildchar'.
1913
1914 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1915 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1916 T1_Decoder.
1917 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1918 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1919 case of error.
1920
1921 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1922 `buildchar' of T1_FaceRec.
1923
1924 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1925 `buildchar' of T1_FaceRec.
1926
Werner Lemberg1a380e02006-07-14 18:28:08 +000019272006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1928
1929 * freetype2/include/freetype/internal/psaux.h: New macros
1930 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1931 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1932 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1933 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1934 (T1_DecoderRec): New fields `buildchar' and `face'.
1935 (IS_PS_TOKEN): New macro.
1936
1937 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1938 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1939
1940 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1941 `default_design_vector' and `num_default_design_vector'.
1942
1943 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1944 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1945 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1946
1947 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1948 `token' argument to be NULL if we want only to count the number of
1949 tokens.
1950 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1951 want to skip the array.
1952 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1953 want to skip the array.
1954
1955 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1956 support for (partially commented out) othersubrs 19-25, 27, and 28.
1957 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1958 (t1_decoder_done): Release new field `buildchar'.
1959
1960 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1961 functions.
1962 (t1_keywords): Register them.
1963 (t1_allocate_blend): Updated.
1964 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1965 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1966 (parse_dict): Remove `keyword_flags' argument.
1967 Use new macro IS_PS_TOKEN.
1968 Changed function so that later PostScript definitions override
1969 earlier ones.
1970 (t1_init_loader): Initialize new field `keywords_encountered'.
1971 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1972 `len_buildchar'.
1973 Remove `keywords_flags'.
1974
1975 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1976 `keywords_encountered'.
1977 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1978
1979 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1980 New entries for parsing /NDV, /CDV, and /DesignVector.
1981
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000019822006-07-07 Werner Lemberg <wl@gnu.org>
1983
1984 Add many checks to protect against malformed PCF files.
1985
1986 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1987 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1988
1989 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1990 data and check that tables don't overlap (using a simple
1991 bubblesort).
1992 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1993 New macros which give the size of data structures in the data
1994 stream.
1995 (pcf_get_properties): Use rough estimates to get array size limits.
1996 Assign `face->nprops' and `face->properties' earlier so that a call
1997 to PCF_Face_Done can do the clean-up in case of error.
1998 Protect against invalid string offsets.
1999 (pcf_get_metrics): Clean up code.
2000 Adjust tracing message levels.
2001 Use rough estimate to get array size limit.
2002 (pcf_get_bitmaps): Clean up code.
2003 Adjust tracing message levels.
2004 Use rough estimates to get offset limits.
2005 (pcf_get_encodings): Adjust tracing message level.
2006 (pcf_get_accel): Clean up code.
2007
Werner Lemberg8eb05252006-06-27 06:20:01 +000020082006-06-26 Werner Lemberg <wl@gnu.org>
2009
2010 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2011 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2012
Werner Lemberg24703f82006-06-26 19:12:51 +000020132006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2014
2015 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2016 (t1_decoder_parse_charstrings): Operator with
2017 opcode 15 pops its two arguments.
2018 Handle the case where the pops of an othersubr may be part of a
2019 subroutine.
2020 Handle unknown othersubrs gracefully: count their operands and let
2021 the following pop operators push the operands as the results onto
2022 the Type1 stack.
2023 Improve handling of setcurrentpoint opcode.
2024
Werner Lembergc011f4c2006-06-26 09:40:00 +000020252006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2026
2027 The Type 1 parser now skips over top-level procedures as required
2028 for a `Simplified Parser'. This makes the parser more robust as it
2029 doesn't poke around in PostScript code. Additionally, it makes the
2030 FontDirectory hackery in src/type1/t1load.c unnecessary.
2031
2032 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2033 (skip_literal_string): Add FT_Error as return value.
2034 Handle escapes better.
2035 (skip_string): Add FT_Error as return value.
2036 Don't set `parser->error' but return error code directly.
2037 (skip_procedure): New function.
2038 (ps_parser_skip_PS_token): Handle procedures.
2039 Update code.
2040 (ps_parser_to_token): Update code.
2041 (ps_parser_load_field_table): Handle bbox entries also.
2042
2043 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2044 Add commented-out code for synthetic fonts.
2045
Werner Lemberga2da05c2006-06-25 06:27:27 +000020462006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2047
2048 Fix two hinting bugs as reported in
2049 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2050
2051 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2052 `first_point' member.
2053
2054 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2055 `first_point'.
2056 (TT_Process_Composite_Glyph): Always untouch points.
2057
2058 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2059 `first_point' and `last_point' in case of composite glyphs.
2060 (Ins_IUP): Fix computation of `end_point'.
2061
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020622006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2063
Werner Lembergef3d2c22006-06-25 06:07:14 +00002064 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2065 Mac. The original patch was written by David Sachitano and Lawrence
2066 Coopet, and modified by Sean McBride for MPW compatibility. Only
2067 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002068
Werner Lembergef3d2c22006-06-25 06:07:14 +00002069 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2070 Mac OS X platforms.
2071 (OS_INLINE): Undefine before definition.
2072 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2073 FontAssociation table in FOND resource.
2074 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2075 and fontSize at each entry of FontAssociation table in FOND
2076 resource.
2077 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2078 ffStylOff of FamilyRecord header of FOND resource, the header,
2079 fontSize, fontID at each entry of FontAssociation table, and
2080 StyleMapping table.
2081 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002082
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000020832006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2084
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002085 Public API of TrueTypeGX, OpenType, and classic kern table validator
2086 should return `FT_Err_Unimplemented_Feature' if validation service
2087 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002088 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002089 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2090
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002091 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2092 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2093 unavailable.
2094 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2095 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002096
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002097 * src/base/ftotval.c (FT_OpenType_Validate): Return
2098 FT_Err_Unimplemented_Feature if OpenType validation service is
2099 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002100
Werner Lembergb10e45a2006-06-08 07:32:56 +000021012006-06-08 Werner Lemberg <wl@gnu.org>
2102
2103 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2104 errors.
2105
David Turner5f1f7502006-06-07 05:11:50 +000021062006-06-07 David Turner <david@freetype.org>
2107
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002108 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2109 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2110 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002111
David Turner457b4a82006-06-06 08:14:14 +000021122006-06-06 David Turner <david@freetype.org>
2113
Werner Lemberg4836f952006-06-06 12:54:08 +00002114 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002115
Werner Lemberg4836f952006-06-06 12:54:08 +00002116 We change `ps_unicodes_init' so that it also takes a
2117 `free_glyph_name' callback to release the glyph names returned by
2118 `get_glyph_name'
2119
2120 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2121 Renamed to ...
2122 (PS_GetGlyphNameFunc): This.
2123 (PS_FreeGlyphNameFunc): New typedef.
2124 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2125
2126 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2127 argument.
2128 (cff_sid_free_glyph_name): New function.
2129 (cff_cmap_unicode_init): Updated.
2130
2131 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2132
2133 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2134 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002135
2136
David Turner09717352006-06-04 14:33:08 +000021372006-06-04 David Turner <david@freetype.org>
2138
Werner Lembergd724f202006-06-04 15:17:41 +00002139 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2140 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002141 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002142
Werner Lembergd724f202006-06-04 15:17:41 +00002143 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2144 of `face->num_glyphs' which missed the last glyph, due to
2145 the offset-by-1 computation, since the PFR format doesn't
2146 guarantee that glyph index 0 corresponds to the `missing
2147 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002148
Werner Lemberg33779662006-05-26 06:30:05 +000021492006-05-25 Werner Lemberg <wl@gnu.org>
2150
2151 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2152 `-no-undefined'. Reported by Christian Biesinger.
2153
Werner Lemberg24773d62006-05-20 08:53:13 +000021542006-05-19 Brian Weed <bw@imaginengine.com>
2155
2156 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2157 have debug information, and debug libraries use `C7 compatible'
2158 debug info.
2159
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021602006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2161
Werner Lemberga6523a62006-05-20 08:47:01 +00002162 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002163 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002164
Werner Lemberga6523a62006-05-20 08:47:01 +00002165 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2166 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002167
2168 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002169 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002170
21712006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2172
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002173 * build/unix/configure.raw: Add a fallback to disable Carbon
2174 dependency, if configured with no options on Mac OS X.
2175
21762006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2177
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002178 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002179 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002180 the second part of Savannah bug #16590.
2181
Werner Lemberg545c4e52006-05-17 22:55:04 +000021822006-05-18 Werner Lemberg <wl@gnu.org>
2183
2184 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2185 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2186
David Turnerdc3ff312006-05-17 12:59:35 +000021872006-05-17 David Turner <david@freetype.org>
2188
Werner Lemberg545c4e52006-05-17 22:55:04 +00002189 This is a major patch used to drastically improve the performance of
2190 loading glyphs. This both speeds up loading the glyph vectors
2191 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002192
Werner Lemberg545c4e52006-05-17 22:55:04 +00002193 We now use inline assembler code with GCC to implement `FT_MulFix',
2194 which is probably the most important function related to the
2195 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002196
Werner Lemberg545c4e52006-05-17 22:55:04 +00002197 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002198
2199
Werner Lemberg545c4e52006-05-17 22:55:04 +00002200 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2201 `cursor' and `limit'.
2202
2203 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2204 New functions.
2205 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2206 [TEST]: Remove.
2207
2208 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2209 code.
2210
2211 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2212 `FT_ZERO'
2213 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2214 (af_glyph_hints_reload: Rewrite recognition of weak points.
2215
2216 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2217 constant values out of the loops.
2218
2219 * src/autofit/aftypes.h: Updated.
2220
2221 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2222
2223 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2224 product to get orientation.
2225
2226 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2227 (FT_Stream_OpenGzip): Use it to handle small files directly in
2228 memory.
2229
2230 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2231 Improve performance.
2232
2233 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2234 `limit'.
2235
2236 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2237 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2238 exceedingly large values of number of contours. Speed up by
2239 reducing the number of loops.
2240
2241 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2242
2243
2244 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2245 used to detect rogue clients from 4 to 16. This is to prevent some
2246 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2247 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002248
Werner Lembergde2d90a2006-05-17 08:54:30 +000022492007-05-17 Werner Lemberg <wl@gnu.org>
2250
2251 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002252 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002253
22542006-05-16 Werner Lemberg <wl@gnu.org>
2255
2256 * docs/PROBLEMS: Updated icl issues.
2257
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002258----------------------------------------------------------------------------
2259
Werner Lemberg42b63b22007-01-21 21:01:33 +00002260Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002261David Turner, Robert Wilhelm, and Werner Lemberg.
2262
2263This file is part of the FreeType project, and may only be used, modified,
2264and distributed under the terms of the FreeType project license,
2265LICENSE.TXT. By continuing to use, modify, or distribute this file you
2266indicate that you have read the license and understand and accept it
2267fully.
2268
2269
2270Local Variables:
2271version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002272coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002273End: