blob: c01e10915aef65d941aadc13c4f350ec5f1436eb [file] [log] [blame]
David Turnerb7920172007-06-11 05:37:35 +000012007-06-11 David Turner <david@freetype.org>
2
Werner Lemberg49e18b82007-06-11 21:15:09 +00003 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
4 incorrect segment linking computation. This was the root cause of
5 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +00006
7
Werner Lemberg49e18b82007-06-11 21:15:09 +00008 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
9 to improve the Latin auto-hinter. Note that the new code is
10 disabled by default since it is not stabilized yet.
11
12 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
13 (disabled currently).
14
15 * src/autofit/afhints.c: Remove dead code.
16 (af_axis_hints_new_edge): Add argument to handle segment directions.
17 (af_edge_flags_to_string): New function.
18 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
19 option flags.
20 (af_glyph_hints_reload): Add argument to handle inflections.
21 Simplify.
22 (af_direction_compute): Fine tuning.
23 (af_glyph_hints_align_edge_points): Fix logic.
24 (af_glyph_hints_align_strong_points): Do linear search for small
25 edge counts.
26 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
27 (af_iup_shift): Handle zero `delta'.
28
29 * src/autofit/afhints.h: Updated.
30 (AF_SORT_SEGMENTS): New macro (disabled).
31 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
32
33 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
34 argument to pass option flags for handling scripts.
35 * src/autofit/afglobal.h: Updated.
36
37 * src/autofit/afcjk.c: Updated.
38 * src/autofit/aflatin.c: Updated.
39 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
40
41 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
42 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
43 Don't set `edge->dir'
44 (af_latin_hint_edges): Add more logging.
45
46 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +000047
Werner Lembergf6c120f2007-06-11 04:55:58 +0000482007-06-11 Werner Lemberg <wl@gnu.org>
49
Werner Lembergcf7b7642007-06-11 04:58:01 +000050 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +000051
David Turner84c6f882007-06-10 20:51:04 +0000522007-06-10 David Turner <david@freetype.org>
53
Werner Lembergf6c120f2007-06-11 04:55:58 +000054 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
55 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +000056
Werner Lembergf6c120f2007-06-11 04:55:58 +000057 * include/freetype/config/ftoption.h: Clarify documentation
58 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +000059
Werner Lembergf6c120f2007-06-11 04:55:58 +000060
61 Add new `FT_Face_CheckTrueTypePatents' API.
62
63 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
64 declaration.
65
66 * include/freetype/internal/services/svttglyf.h,
67 src/base/ftpatent.c: New files.
68
69 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
70 New macro.
71
72 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
73 `ttpload.h'.
74 (tt_service_truetype_glyf): New service structure.
75 (tt_services): Register it.
76
77 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
78 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +000079
Werner Lemberg33db39e2007-06-08 06:30:29 +0000802007-06-08 Werner Lemberg <wl@gnu.org>
81
David Turner84c6f882007-06-10 20:51:04 +000082 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +000083 Fonts without a cmap must be handled correctly by FreeType (anything
84 else would be a bug).
85
86
87 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
88 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
89
Werner Lemberg88ab6382007-06-07 05:01:56 +0000902007-06-07 Werner Lemberg <wl@gnu.org>
91
92 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
93 tt_sbit_decoder_load_image): Protect against integer overflows.
94
95
96 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
97 for `x_control' and `y_control'.
98
Werner Lemberg2a2dca62007-06-06 04:39:37 +0000992007-06-06 Werner Lemberg <wl@gnu.org>
100
101 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
102
Werner Lemberga8d65492007-06-06 04:47:49 +0000103
104 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
105 FreeType error.
106
Werner Lemberg470210b2007-06-06 10:05:49 +0000107
108 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
109 `font_count'.
110
111
112 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
113
114
115 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
116 `FT_Error'.
117 Check `fd_index'.
118 (cff_slot_load): Updated.
119 * src/cff/cffgload.h: Updated.
120
Werner Lemberg6c054752007-06-05 05:27:54 +00001212007-06-05 Werner Lemberg <wl@gnu.org>
122
123 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
124 (pfr_glyph_load_simple): Convert assertion into normal FreeType
125 error.
126 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000127 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
128 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000129
130 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
131
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000132
Werner Lemberg470210b2007-06-06 10:05:49 +0000133 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000134
Werner Lemberge5c14d92007-06-05 20:50:37 +0000135
136 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
137 in case of parsing error.
138 (ps_parser_load_field): Updated.
139
140 * src/type1/t1load.c (parse_font_matrix): Updated.
141
Werner Lembergad18b362007-06-04 07:04:05 +00001422007-06-04 Werner Lemberg <wl@gnu.org>
143
144 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
145
146 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
147
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001482007-06-03 Werner Lemberg <wl@gnu.org>
149
Werner Lemberg99a320b2007-06-03 19:21:26 +0000150 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
151 George Williams (with some modifications).
152
1532007-06-03 Werner Lemberg <wl@gnu.org>
154
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000155 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
156 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
157 face == NULL. Suggested by Graham Asher.
158
Werner Lembergce280a22007-06-03 05:58:30 +00001592007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
160
161 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
162
Werner Lemberg5b591e42007-06-01 22:16:43 +00001632007-06-02 Werner Lemberg <wl@gnu.org>
164
165 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
166 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
167
168 * src/bdf/bdflib.c (bdf_load_font): Use them.
169
170 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
171
Werner Lembergb9933f42007-06-01 21:27:12 +00001722007-06-01 Werner Lemberg <wl@gnu.org>
173
174 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
175 (FTC_CMapCache_Lookup): Remove unused code.
176
Werner Lembergc793d902007-06-01 20:51:11 +00001772007-06-01 Sean McBride <sean@rogue-research.com>
178
179 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
180 unused.
181
Werner Lembergbebc7b12007-06-01 06:32:30 +00001822007-06-01 Werner Lemberg <wl@gnu.org>
183
184 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
185 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000186 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000187
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000188 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
189 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
190
Werner Lembergba03af62007-05-30 13:57:02 +00001912007-05-30 Werner Lemberg <wl@gnu.org>
192
193 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
194 against too small binary data strings.
195
196 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
197
David Turnerf0cd69c2007-05-28 15:42:09 +00001982007-05-28 David Turner <david@freetype.org>
199
Werner Lemberg99e0c182007-05-29 07:00:23 +0000200 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
201 transformation. This significantly reduces the loading time of CFF
202 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000203
Werner Lemberg99e0c182007-05-29 07:00:23 +0000204 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000205
Werner Lemberg99e0c182007-05-29 07:00:23 +0000206 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
207 hinting script to CJK, since it works well with more scripts than
208 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
209 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000210
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002112007-05-25 Werner Lemberg <wl@gnu.org>
212
213 * docs/CHANGES: Updated.
214
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00002152007-05-24 Werner Lemberg <wl@gnu.org>
216
217 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
218 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
219
2202007-05-24 Graham Asher <graham.asher@btinternet.com>
221
222 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
223 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
224
David Turner0d0365e2007-05-22 09:53:44 +00002252007-05-22 David Turner <david@freetype.org>
226
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000227 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
228 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000229
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000230
231 Avoid heap blowup with very large .Z font files. This fixes
232 Savannah bug #19910.
233
234 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
235 `in_limit', `pad', `pad_bits', and `in_buff' members.
236 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
237 `buf_total' members.
238
239 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
240 only one argument.
241 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000242
2432007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000244
245 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
246 (ps_dimension_set_mask_bits): Remove `const'.
247
David Turner0d0365e2007-05-22 09:53:44 +00002482007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000249
250 * src/sfnt/ttmtx.c (tt_face_get_metrics)
251 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
252
Werner Lembergb826fa72007-05-19 07:18:48 +00002532007-05-19 Derek Clegg <dclegg@apple.com>
254
255 Savannah patch #5929.
256
257 * include/freetype/tttables.h, src/base/ftobjcs.c
258 (FT_Get_CMap_Format): New function.
259
260 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
261 `format' member.
262 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
263 cmap_info->format.
264
Werner Lemberg6f99c882007-05-19 07:01:49 +00002652007-05-19 Werner Lemberg <wl@gnu.org>
266
267 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
268 before handling subglyphs so that it can be reinitialized each time.
269 This fixes Savannah bug #19859.
270
Werner Lemberg95bc9d32007-05-16 15:19:42 +00002712007-05-16 Werner Lemberg <wl@gnu.org>
272
273 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
274 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
275 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
276 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
277 tt_face_get_metrics): Fix type-punning issues.
278
David Turner0a24bd22007-05-15 10:54:10 +00002792007-05-15 David Turner <david@freetype.org>
280
281 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000282 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
283 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000284 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000285 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000286
Werner Lemberg607dec72007-05-15 06:49:37 +00002872007-05-15 Graham Asher <graham.asher@btinternet.com>
288
289 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
290 variable.
291 * src/autofit/afloader.c (af_loader_load_g): Ditto.
292
293 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
294 (open_face_from_buffer): Initialize `stream'.
295 (FT_Request_Metrics): Remove unused variable.
296 Remove redundant `break' statements.
297 (FT_Get_Track_Kerning): Remove unused variable.
298
299 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
300 afm_parse_kern_data): Remove redundant
301 `break' statements.
302 (afm_parser_parse): Ditto.
303 Don't use uninitialized variables.
304
305 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
306 Use `|' operator instead of `^' to set it.
307 Update all users.
308
309 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
310 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
311
312 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
313 comparison.
314 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
315 (TT_Load_Glyph): Remove unused variable.
316
Werner Lemberg8d463a52007-05-13 16:01:55 +00003172007-05-13 Derek Clegg <dclegg@apple.com>
318
319 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
320 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
321
David Turner711cf842007-05-11 14:36:24 +00003222007-05-11 David Turner <david@freetype.org>
323
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000324 * src/cache/ftbasic.c, include/freetype/ftcache.h
325 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
326 functions that allow us to look up glyphs using an FTC_Scaler object
327 to specify the size, making it possible to use fractional pixel
328 sizes.
329
330 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
331 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000332
Werner Lemberg94be20e2007-05-09 20:02:55 +00003332007-05-09 Graham Asher <graham.asher@btinternet.com>
334
335 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
336 (af_latin_metrics_scale_dim): Fix compiler warnings.
337
Werner Lemberg41271032007-05-06 04:51:48 +00003382007-05-06 Werner Lemberg <wl@gnu.org>
339
340 * builds/win32/visualce/freetype.sln: Removed, as requested by
341 Vincent.
342
Werner Lembergdf49e692007-05-04 06:30:05 +00003432007-05-04 Vincent RICHOMME <richom.v@free.fr>
344
345 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
346 PC targets.
347
348 * docs/CHANGES: Document them.
349
3502007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000351
352 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
353 mmap (which might happen on some RTOS). From Savannah patch #5909.
354
Werner Lemberg106eaf12007-05-03 07:07:47 +00003552007-05-03 Werner Lemberg <wl@gnu.org>
356
357 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
358 * include/freetype/freetype.h (FT_Set_Char_Size): Update
359 documentation.
360
Werner Lemberg1b5267d2007-04-28 21:06:15 +00003612007-04-28 Victor Stinner <victor.stinner@inl.fr>
362
363 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
364 `cmap'.
365
Werner Lembergcc712a22007-04-27 17:16:50 +00003662007-04-27 Werner Lemberg <wl@gnu.org>
367
368 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
369 number of points in contours. Problem reported by Victor Stinner
370 <victor.stinner@haypocalc.com>.
371 (TT_Process_Simple_Glyph): Synchronize variable types.
372
Werner Lemberg45bb18f2007-04-26 06:26:35 +00003732007-04-26 Werner Lemberg <wl@gnu.org>
374
375 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
376 zero in case of error. This fixes Savannah bug #19689.
377
David Turnera8b45e62007-05-11 14:10:30 +00003782007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
379
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000380 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
381 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000382
Werner Lembergfcc1f472007-04-10 11:51:50 +00003832007-04-10 Martin Horak <horakm@centrum.cz>
384
385 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
386 Ignore `hhea' table. This fixes Savannah bug #19261.
387
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003882007-04-09 Werner Lemberg <wl@gnu.org>
389
390 * Version 2.3.4 released.
391 =========================
392
393
394 Tag sources with `VER-2-3-4'.
395
396 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
397 version number to 2.3.4.
398
399 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
400 builds/win32/visualc/freetype.dsp,
401 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
402
403 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
404
405 * builds/unix/configure.raw (version_info): Set to 9:15:3.
406
Werner Lembergf4a52a62007-04-09 08:40:11 +00004072007-04-09 Martin Horak <horakm@centrum.cz>
408
409 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
410 memory stream to avoid a crash with the incremental memory
411 interface (Savannah bug #19260).
412
David Turner1dcb4442007-04-06 08:19:04 +00004132007-04-06 David Turner <david@freetype.org>
414
Werner Lembergc81cf612007-04-06 09:28:23 +0000415 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
416 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000417
Werner Lemberg9f83e052007-04-05 02:28:23 +00004182007-04-04 Werner Lemberg <wl@gnu.org>
419
420 * Version 2.3.3 released.
421 =========================
422
423
424 Tag sources with `VER-2-3-3'.
425
426 * docs/CHANGES: Mention CVE-2007-1351.
427
David Turner7338ec22007-04-03 14:30:34 +00004282007-04-03 David Turner <david@freetype.org>
429
430 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000431 if one of the resolution values is 0, treat it as if it were the
432 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000433
David Turnere6472c12007-04-02 13:13:54 +00004342007-04-02 David Turner <david@freetype.org>
435
Werner Lemberg94f12272007-04-03 07:19:53 +0000436 Add special code to detect `extra-light' fonts and do not snap their
437 stem widths too much to avoid bizarre hinting effects.
438
439 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
440 `extra_light' members.
441
442 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
443 them.
444 (af_latin_metrics_scale_dim): Set `extra_light'.
445 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000446
David Turner3f539692007-03-28 14:53:40 +00004472007-03-28 David Turner <david@freetype.org>
448
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000449 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000450 padding.
451
Werner Lemberga08b2172007-03-28 07:17:17 +00004522007-03-28 Werner Lemberg <wl@gnu.org>
453
454 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
455 gracefully.
456 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000457 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000458 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
459 number of code points in Unicode.
460
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000461 * builds/win32/visualc/index.html,
462 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000463 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000464 s/232/233/.
465
466 * docs/CHANGES: Mention ftdiff.
467
David Turner3b242d32007-03-26 12:03:04 +00004682007-03-26 David Turner <david@freetype.org>
469
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000470 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
471 corresponding code.
472 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000473
Werner Lemberga08b2172007-03-28 07:17:17 +0000474 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000475 computations in order to ignore single-point contours. These are
476 never rasterized and correspond in certain fonts to mark-attach
477 points that are very far from the glyph's real outline, ruining the
478 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000479
Werner Lemberga08b2172007-03-28 07:17:17 +0000480 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000481 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000482 Otherwise code that uses them will most certainly ruin the fixed
483 advance property.
David Turner23553d62007-03-26 13:37:17 +0000484
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000485 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
486 documentation and bump version number to 2.3.3.
487
488 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
489
490 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000491
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00004922007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
493
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000494 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
495 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000496 * builds/vms/ftconfig.h: Ditto.
497 * include/freetype/config/ftconfig.h: Ditto.
498
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004992007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
500
Werner Lemberg14ffe092007-03-22 06:12:43 +0000501 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
502 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000503 proposed by Sean McBride:
504 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
505
5062007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
507
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000508 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
509 setjmp, proposed by Sean McBride:
510 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
511
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00005122007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
513
Werner Lembergc9f6c662007-03-21 13:30:14 +0000514 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
515 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
516 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000517
David Turner74c34eb2007-03-18 07:19:31 +00005182007-03-18 David Turner <david@freetype.org>
519
Werner Lembergc9f6c662007-03-21 13:30:14 +0000520 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
521 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000522
Werner Lembergc9f6c662007-03-21 13:30:14 +0000523 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000524
David Turner89020d92007-03-17 17:48:57 +00005252007-03-17 David Turner <david@freetype.org>
526
Werner Lembergc9f6c662007-03-21 13:30:14 +0000527 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
528 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000529
Werner Lemberg25d592a2007-03-09 07:59:35 +00005302007-03-09 Werner Lemberg <wl@gnu.org>
531
532 * Version 2.3.2 released.
533 =========================
534
535
536 Tag sources with `VER-2-3-2'.
537
538 * builds/win32/visualc/index.html,
539 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000540 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000541 s/231/232/.
542
David Turner3a51afa2007-03-08 10:50:38 +00005432007-03-08 David Turner <david@freetype.org>
544
Werner Lemberg25d592a2007-03-09 07:59:35 +0000545 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000546
Werner Lemberg25d592a2007-03-09 07:59:35 +0000547 * builds/unix/configure.raw (version_info): Set to 9:13:3.
548
549 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
550
551 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000552
Werner Lemberg1e259de2007-03-08 15:39:21 +0000553 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
554 function to work properly, over-writing user-provided buffers in
555 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000556
David Turner121cad52007-03-08 16:43:50 +0000557
Werner Lemberg3d92f082007-03-06 11:59:24 +00005582007-03-05 Werner Lemberg <wl@gnu.org>
559
560 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
561 macro for `strstr'.
562
563 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
564 `trick_names', as suggested by Ivan Nincic.
565
David Turner085bc6e2007-03-05 17:40:03 +00005662007-03-05 David Turner <david@freetype.org>
567
Werner Lembergd112cf02007-03-06 12:06:56 +0000568 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
569 case FT_Init_FreeType fails for some reason. Problem reported by
570 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000571
Werner Lembergd112cf02007-03-06 12:06:56 +0000572 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
573 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
574 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
575 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000576
Werner Lembergd112cf02007-03-06 12:06:56 +0000577 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
578 signed values, not unsigned ones. Problem reported by Johannes
579 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000580
David Turner601aefe2007-02-21 16:47:49 +00005812007-02-21 David Turner <david@freetype.org>
582
Werner Lembergde5e6862007-02-25 21:06:43 +0000583 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
584 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000585
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00005862007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
587
588 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
589 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
590 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
591
Werner Lemberga0915172007-02-16 08:12:50 +00005922007-02-16 Werner Lemberg <wl@gnu.org>
593
594 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
595 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
596
David Turner2c4500e2007-02-14 15:08:47 +00005972007-02-14 David Turner <david@freetype.org>
598
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000599 It seems that the following changes fix most of the known
600 interpreter problems with my fonts, but more testing is needed,
601 though.
602
603 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
604 (TT_MulFix14): Rewrite.
605 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
606 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000607
Werner Lembergc6a14082007-02-12 22:08:15 +00006082007-02-12 Werner Lemberg <wl@gnu.org>
609
610 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
611 warnings.
612
613 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
614 (bdf_interpret_style): Ditto.
615
David Turnerc0f9c4a2007-02-12 14:55:03 +00006162007-02-12 David Turner <david@freetype.org>
617
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000618 Simplify projection and dual-projection code interface.
619
Werner Lemberg406d25f2007-02-12 22:01:18 +0000620 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
621 FT_Vector' as argument type.
622 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
623 Updated.
624 (CUR_fast_project, CUR_fast_dualproj): New macros.
625 (Project, Dual_Project, Project_x, Project_y): Updated.
626 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
627 macros.
628
629
630 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
631 adjustments for the non-light auto-hinted modes. Gets rid of
632 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000633
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000634 * src/autofit/aflatin.c (af_latin_hints_link_segments,
635 af_latin_hints_compute_edges): Slight optimization of the segment
636 linker and better handling of serif segments to get rid of broken
637 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000638
David Turnerc0f9c4a2007-02-12 14:55:03 +0000639
Werner Lemberg442bfb82007-02-12 21:44:10 +0000640 Introduce new string functions and the corresponding macros to get
641 rid of various uses of strcpy and other `evil' functions, as well as
642 to simplify a few things.
643
644 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
645 ft_mem_strcpyn): New declarations.
646 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
647 macros.
648 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
649 functions.
650
651 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
652 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
653 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
654 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
655 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
656 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
657 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
658 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000659
Werner Lemberg406d25f2007-02-12 22:01:18 +0000660 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
661
Werner Lemberg582067d2007-02-11 15:03:05 +00006622007-02-11 Werner Lemberg <wl@gnu.org>
663
664 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
665 non-spacing glyphs.
666
Werner Lemberg8f474532007-02-07 08:31:01 +00006672007-02-07 Tom Parker <palfrey@tevp.net>
668
669 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
670 pointer.
671
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006722007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
673
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000674 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
675 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000676 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000677 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
678 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
679 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
680 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000681
682 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
683 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000684 * builds/mac/ftmac.c: Ditto.
685
6862007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
687
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000688 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000689 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000690 #include <ftmac.c>.
691
6922007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
693
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000694 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
695 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
696 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
697 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
698 FT_GetFilePath_From_Mac_ATS_Name.
699 * builds/mac/ftmac.c: Ditto.
700
7012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
702
Werner Lembergdcbb7082007-02-08 08:54:09 +0000703 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000704 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
705 for passing to FT_New_Face_From_FSSpec.
706
7072007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
708
Werner Lembergdcbb7082007-02-08 08:54:09 +0000709 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000710 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000711
712 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
713 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000714 * builds/mac/ftmac.c (OS_INLINE): Ditto.
715
Werner Lemberg313d7772007-02-01 08:10:45 +00007162007-02-01 Werner Lemberg <wl@gnu.org>
717
718 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
719 Explain why applications shouldn't use it. Found by Alexei.
720
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007212007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000722
723 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
724 message.
725
726 * src/gxvalid/gxvmort1.c
727 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
728 message.
729
Werner Lemberg53935932007-01-31 08:53:02 +00007302007-01-31 Werner Lemberg <wl@gnu.org>
731
732
733 * Version 2.3.1 released.
734 =========================
735
736
737 Tag sources with `VER-2-3-1-FINAL'.
738
739 * builds/win32/visualc/freetype.dsp,
740 builds/win32/visualc/freetype.vcproj: s/230/231/.
741 * builds/win32/visualc/index.html: s/221/231/.
742
743 * vms_make.com: Add `ftgasp'.
744
David Turnera7ee6082007-01-30 10:33:53 +00007452007-01-30 David Turner <david@freetype.org>
746
Werner Lemberg53935932007-01-31 08:53:02 +0000747 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000748
Werner Lemberg53935932007-01-31 08:53:02 +0000749 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000750
Werner Lemberg25d592a2007-03-09 07:59:35 +0000751 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000752 s/2.3.0/2.3.1/.
753
754 * builds/unix/configure.raw (version_info): Set to 9:12:3.
755
756
757 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
758 (af_loader_load_g): Disable the warper (i.e., the light hinting
759 improvements) to make a 2.3.1 bugfix release before introducing a
760 new feature. This should give us more time to tune and improve the
761 warper for the next release.
762
763 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000764
David Turnerd91eebd2007-01-26 15:05:41 +00007652007-01-25 David Turner <david@freetype.org>
766
Werner Lembergbf241762007-01-26 16:08:49 +0000767 For light auto-hinting, improve glyph advance widths and resurrect
768 normal/full hinting to its normal quality.
769
770 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
771 and `xmax_delta'.
772 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
773 and `xmax_delta'.
774
775 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
776 preprocessor conditional with if-clause, handling both light and
777 normal mode.
778
779 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
780 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000781
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00007822007-01-25 Werner Lemberg <wl@gnu.org>
783
784 * docs/release: Updated -- Savannah uses a new uploading scheme.
785
David Turnera42567b2007-01-25 12:23:37 +00007862007-01-25 David Turner <david@freetype.org>
787
Werner Lembergd7855662007-01-25 13:53:56 +0000788 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000789
Werner Lembergd7855662007-01-25 13:53:56 +0000790 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
791 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
792 functions.
David Turnera42567b2007-01-25 12:23:37 +0000793
Werner Lembergd7855662007-01-25 13:53:56 +0000794 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000795
Werner Lembergb1be9e82007-01-25 11:50:00 +00007962007-01-25 Werner Lemberg <wl@gnu.org>
797
798 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000799 correctly in a sanity check. Since this function is only used to
800 load local and global functions, any charstring that called the last
801 local/global function would fail otherwise. This fixes Savannah bug
802 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000803
804 * docs/CHANGES: Document it.
805
David Turnerb6de8d12007-01-23 15:51:50 +00008062007-01-23 David Turner <david@freetype.org>
807
Werner Lembergb1be9e82007-01-25 11:50:00 +0000808 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
809 prevented compilation when disabling both the unpatented and the
810 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000811
Werner Lembergb1be9e82007-01-25 11:50:00 +0000812
813 Fix and enable the warper to improve `light' hinting mode. This is
814 not necessarily a final version, but it seems to work well.
815
816 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
817 Disable code.
818 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
819 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
820
821 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
822 (af_warper_compute_line_best): Fix array size of `scores'.
823 (af_warper_compute): Better handling of border cases.
824 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
825 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000826
Werner Lemberg011d1112007-01-21 09:36:00 +00008272007-01-21 Werner Lemberg <wl@gnu.org>
828
Werner Lemberg42b63b22007-01-21 21:01:33 +0000829 * ChangeLog: Split off older entries into...
830 * ChangeLog.22: This new file.
831
8322007-01-21 Werner Lemberg <wl@gnu.org>
833
Werner Lemberg555258f2007-01-21 09:46:37 +0000834 * docs/CHANGES: Document SHZ fix.
835
8362007-01-21 George Williams <gww@silcom.com>
837
838 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
839 points.
840
8412007-01-21 Werner Lemberg <wl@gnu.org>
842
Werner Lemberg011d1112007-01-21 09:36:00 +0000843 * src/sfnt/ttmtx.c (tt_face_get_metrics)
844 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
845
Werner Lemberg87a5a432007-01-17 12:44:39 +00008462007-01-17 Werner Lemberg <wl@gnu.org>
847
Werner Lembergb8003292007-01-17 12:56:25 +0000848
849 * Version 2.3.0 released.
850 =========================
851
852
853 Tag sources with `VER-2-3-0-FINAL'.
854
8552007-01-17 Werner Lemberg <wl@gnu.org>
856
Werner Lemberg87a5a432007-01-17 12:44:39 +0000857 * docs/release: Updated.
858
David Turner22122722007-01-16 20:06:44 +00008592007-01-16 David Turner <david@freetype.org>
860
Werner Lemberg87a5a432007-01-17 12:44:39 +0000861 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
862 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
863 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
864 warnings.
David Turner22122722007-01-16 20:06:44 +0000865
Werner Lemberg267e1d72007-01-15 07:48:09 +00008662007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
867
868 * builds/amiga/makefile, builds/amiga/makefile.os4,
869 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
870
871 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
872
Werner Lemberg8c4120d2007-01-15 06:42:40 +00008732007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
874
875 Fix various compiler warnings.
876
877 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
878 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
879 s/index/strike_index/.
880 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
881
882 * src/gxvalid/gxvmorx5.c
883 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
884
885 * src/truetype/ttinterp.c (Compute_Point_Displacement),
886 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
887 uninitialized variables.
888
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008892007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
890
891 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
892
Werner Lemberg281c1482007-01-13 22:50:51 +00008932007-01-13 Werner Lemberg <wl@gnu.org>
894
895 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
896 versions up to 0x3FF without complaining.
897
Werner Lembergac250b22007-01-13 14:01:36 +00008982007-01-13 Derek Clegg <dclegg@apple.com>
899
900 Add FT_Get_PS_Font_Info interface to CFF driver.
901
902 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
903 (CFF_FontRec): Add `font_info' field.
904
905 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
906 (cff_font_done): Free font->font_info if necessary.
907
908 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
909 (cff_service_ps_info): Register cff_ps_get_font_info.
910
Werner Lemberg23df31a2007-01-13 08:45:00 +00009112007-01-13 Werner Lemberg <wl@gnu.org>
912
913 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
914 with C++ compiler.
915
916 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
917 af_glyph_hints_dump_edges): Ditto.
918
919 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
920 `modules.cfg').
921
922 * src/sfnt/ttsbit0.h: Remove.
923
924 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
925
Werner Lemberg27cf9de2007-01-13 07:34:23 +00009262007-01-12 David Turner <david@freetype.org>
927
928 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
929 bug in the bitmap emboldener if the pitch of the source bitmap is
930 much larger than its width.
931
932 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
933 compilation warning.
934
Werner Lemberg6d96d312007-01-12 10:30:19 +00009352007-01-12 Werner Lemberg <wl@gnu.org>
936
937 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
938 `automake' CVS module from sources.redhat.com.
939
Werner Lemberg17432b52007-01-12 09:28:44 +00009402007-01-11 Werner Lemberg <wl@gnu.org>
941
942 * src/type1/t1load.c (is_space): Removed.
943 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
944 (parse_charstrings): Use IS_PS_TOKEN.
945
946
947 * autogen.sh: Avoid bash specific syntax.
948
David Turner038ace22007-01-11 15:00:59 +00009492007-01-11 David Turner <david@freetype.org>
950
Werner Lemberg17432b52007-01-12 09:28:44 +0000951 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000952
Werner Lemberg17432b52007-01-12 09:28:44 +0000953 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000954
Werner Lemberg17432b52007-01-12 09:28:44 +0000955 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
956 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000957 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000958
Werner Lemberg17432b52007-01-12 09:28:44 +0000959 * autogen.sh: Small fix to get it working on Mac OS X properly:
960 The issue is that GNU libtool is called `glibtool' on this platform,
961 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000962
David Turner2628ea92007-01-10 13:15:56 +00009632007-01-10 David Turner <david@freetype.org>
964
Werner Lemberg17432b52007-01-12 09:28:44 +0000965 * all-sources: Tag all sources with VER-2-3-0-RC1 and
966 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000967
Werner Lemberg17432b52007-01-12 09:28:44 +0000968 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
969 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
970 version number to 2.3.0.
971
972 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
973 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000974
975 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000976 include/freetype/ftlcdfil.h: Update reference documentation with
977 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000978
Werner Lemberg17432b52007-01-12 09:28:44 +0000979 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
980 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000981
Werner Lembergbf02d392007-01-10 07:07:37 +00009822007-01-10 Derek Clegg <dclegg@apple.com>
983
984 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
985 values.
986
David Turnerf48b60e2007-01-08 15:15:32 +00009872007-01-08 David Turner <david@freetype.org>
988
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000989 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000990
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000991 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
992 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000993 corresponding to a given character pixel size.
994
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000995 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
996 `gasp' table, in order to avoid potential problems with later
997 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000998
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000999 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1000 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001001
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001002 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1003 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1004 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1005 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001006
Werner Lemberge6b6f372007-01-07 00:06:47 +000010072007-01-07 Werner Lemberg <wl@gnu.org>
1008
Werner Lembergb8004d22007-01-07 09:13:38 +00001009 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1010 Type 11 fonts.
1011 Scan for `/sfnts' token.
1012
10132007-01-07 Werner Lemberg <wl@gnu.org>
1014
1015 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001016
Werner Lembergbe5f7972007-01-06 07:51:48 +000010172007-01-06 Werner Lemberg <wl@gnu.org>
1018
1019 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1020 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1021
David Turnera8cf42b2007-01-04 16:46:46 +000010222007-01-04 David Turner <david@freetype.org>
1023
Werner Lembergf6294392007-01-06 07:47:45 +00001024 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1025 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001026
Werner Lembergf6294392007-01-06 07:47:45 +00001027
1028 Do not allocate interpreter-specific tables in memory if we are not
1029 going to load glyphs with the bytecode interpreter anyway.
1030
1031 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1032 only if glyph is hinted.
1033 Updated.
1034 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1035 and `cvs_ready'.
1036 Add `tt_size_ready_bytecode' declaration.
1037 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1038 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1039 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1040 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1041 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001042
David Turner91a34022007-01-05 14:47:08 +00001043
Werner Lembergf6294392007-01-06 07:47:45 +00001044 Don't extract the metrics table from the SFNT font file. Instead,
1045 reparse it on each glyph load. The runtime difference is not
1046 noticeable, and it can save a lot of heap memory when memory-mapped
1047 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001048
Werner Lembergf6294392007-01-06 07:47:45 +00001049 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1050 `horz_metrics_offset' and `vert_metrics_ofset'.
1051 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1052 Updated.
1053
1054
1055 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1056
1057
1058 Do not load the CFF index offsets into memory, since this wastes a
1059 *lot* of heap memory with large Asian CFF fonts. There is no
1060 significant performance loss.
1061
1062 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1063 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1064 `data_size'.
1065 (CFF_CharsetRec): Add field `num_glyphs'.
1066
1067 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1068 cff_charset_cid_to_gindex): New functions.
1069 (cff_new_index): Renamed to...
1070 (cff_index_init): This. Update all callers.
1071 Updated -- some code has been moved to `cff_index_load_offsets'.
1072 (cff_done_index): Renamed to...
1073 (cff_index_done): This. Update all callers.
1074 (cff_index_get_pointers, cff_index_access_element): Updated to use
1075 stream offsets.
1076 (cff_charset_compute_cids): Set `num_glyphs' field.
1077 (cff_encoding_load): Updated.
1078
1079 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001080
10812007-01-04 David Turner <david@freetype.org>
1082
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001083 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1084 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001085
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001086 * README.CVS: Add common problem description and solution
1087 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001088
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001089 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001090
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001091 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001092
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001093 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001094
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001095 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1096 (TWorker): This.
1097 Remove `count_table' and `memory'.
1098 Make `grays' a pointer.
1099 (TRaster): New structure.
1100 (count_table): New static array.
1101 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1102 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1103 ft_black_set_mode, ft_black_render): Updated.
1104 (ft_black_init): Don't initialize `count_table'.
1105 (ft_black_reset): Use the render pool. This saves about 6KB of
1106 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001107
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001108 * src/smooth/ftgrays.c (TRaster): Replaced with...
1109 (TWorker): This.
1110 Remove `memory'.
1111 (TRaster): New structure.
1112
1113 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1114 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1115 gray_render_span, gray_raster_render): Updated.
1116 (gray_raster_reset): Use the render pool. This saves about 6KB of
1117 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001118
David Turner8a6c44e2007-01-04 17:03:11 +00001119 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1120 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001121 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1122 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1123 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001124
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001125 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1126 Remove a typo that results in no hinting and a memory leak with some
1127 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001128
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001129 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001130 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001131 CFF_Faces in it. We need to close all faces before destroying the
1132 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001133
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000011342007-01-02 Werner Lemberg <wl@gnu.org>
1135
1136 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1137 Remove compiler warning.
1138
David Turner9207e002007-01-02 16:58:13 +000011392007-01-02 David Turner <david@freetype.org>
1140
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001141 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001142
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011432006-12-31 Masatake YAMATO <jet@gyve.org>
1144
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001145 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1146 function.
1147 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001148 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001149 `gxv_kern_subtable_fmt0_pairs_validate'.
1150
David Turner115b4422006-12-22 11:37:05 +000011512006-12-22 David Turner <david@freetype.org>
1152
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001153 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1154 warnings.
David Turner115b4422006-12-22 11:37:05 +00001155
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001156 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1157 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001158
Werner Lemberg4755bf72006-12-16 08:58:44 +000011592006-12-16 Anders Kaseorg <anders@kaseorg.com>
1160
1161 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1162 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1163
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000011642006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1165
Werner Lemberg9b774e22007-01-16 06:11:27 +00001166 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001167 sync with the modification by Jens Claudius on 2006-08-22; cf.
1168 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 +00001169
11702006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1171
1172 * src/base/ftmac.c: Specialized for Mac OS X only.
1173 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1174 * builds/unix/configure.raw: Ditto. When explicit switches for
1175 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1176 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1177
11782006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1179
1180 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1181 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1182 instead of src/base/ftmac.c
1183 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1184 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1185 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1186 that cannot be built at present.
1187
11882006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1189
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001190 * src/base/ftobjs.c: Improvement of resource fork handler for
1191 POSIX, cf.
1192 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001193 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1194 format or .dfont, to simulate the face index number counted by ftmac.c.
1195 (IsMacResource): Return the number of scalable faces correctly.
1196
Werner Lembergec5b4502006-12-10 07:51:38 +000011972006-12-10 Werner Lemberg <wl@gnu.org>
1198
1199 * builds/toplevel.mk (version): Protect against `distclean' target.
1200
Werner Lembergb26b3142006-12-09 20:01:43 +000012012006-12-09 Werner Lemberg <wl@gnu.org>
1202
1203 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1204 or `type'.
1205
1206 * builds/freetype.mk (version): Extracted from freetype.h, using
1207 GNU make's built-in string functions.
1208 (refdoc): Use $(version) instead of static version number.
1209
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000012102006-12-08 Werner Lemberg <wl@gnu.org>
1211
1212 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1213
Werner Lemberg15c29502006-12-09 07:29:54 +000012142006-12-08 Vladimir Volovich <vvv@vsu.ru>
1215
1216 * src/tools/apinames (State): Remove final comma in structure -- xlc
1217 v5 under AIX 4.3 doesn't like this.
1218
David Turnerdbf3b432006-12-07 21:18:09 +000012192006-12-07 David Turner <david@freetype.org>
1220
Werner Lemberg256a3512006-12-08 06:49:33 +00001221 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1222 to the spacing of auto-fitted glyphs. This only impacts rare
1223 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001224
Werner Lemberg11171312006-12-03 09:43:40 +000012252006-12-03 Werner Lemberg <wl@gnu.org>
1226
1227 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1228
Werner Lemberg960ba592006-12-01 08:20:47 +000012292006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001230
Werner Lemberg960ba592006-12-01 08:20:47 +00001231 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1232 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1233 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001234
David Turner80658e52006-11-28 08:09:20 +00001235
Werner Lemberg960ba592006-12-01 08:20:47 +00001236 * include/freetype/ftxf86.h: Fix and extend comment so that it
1237 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001238
Werner Lemberg960ba592006-12-01 08:20:47 +00001239 * include/freetype/ftchapters.h: Add `font_format' section.
1240
1241
1242 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1243 to TOC in index page.
1244
12452006-11-28 David Turner <david@freetype.org>
1246
1247 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1248 trying to render into a zero-width/height bitmap, not an error code.
1249
1250 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1251
1252 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1253 ones instead.
1254
1255 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1256 variable.
David Turner80658e52006-11-28 08:09:20 +00001257
Werner Lemberg8636c292006-11-26 22:28:13 +000012582006-11-26 Pierre Hanser <hanser@club-internet.fr>
1259
1260 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1261
Werner Lemberg960ba592006-12-01 08:20:47 +000012622006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001263
Werner Lemberg960ba592006-12-01 08:20:47 +00001264 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1265 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1266 Add stubs to link the `ftgrid' test program when debugging is
1267 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001268
Werner Lemberg960ba592006-12-01 08:20:47 +000012692006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001270
1271 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001272 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1273
1274 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1275 Emit more sensible information.
1276
1277 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1278
1279 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1280 rounding of blue values.
1281 (af_latin_hints_compute_segments): Hint segment heights.
1282 (af_latin_hints_link_segments): Reduce `len_score' value.
1283 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1284 value and use `height' member for comparisons.
1285 (af_latin_hint_edges): Extend logging message.
1286 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001287
Werner Lemberg91959bf2006-11-22 10:36:55 +000012882006-11-22 Werner Lemberg <wl@gnu.org>
1289
1290 Fix Savannah bug #15553.
1291
1292 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1293 program after a change from mono to grayscaling (and vice versa).
1294 Use correct constant for comparison to get `exec->grayscale'.
1295
Werner Lemberg913a3652006-11-19 09:19:17 +000012962006-11-18 Werner Lemberg <wl@gnu.org>
1297
1298 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001299 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001300 This patch fixes Savannah bug #18301.
1301
1302 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1303 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1304 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1305 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1306 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1307 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1308 (FNT_Load_Glyph): Check validity of `glyph_index'.
1309
David Turner7bab6ae2006-11-13 11:25:06 +000013102006-11-13 David Turner <david@freetype.org>
1311
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001312 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1313 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001314
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001315 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1316 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1317 when building the library to change the default LCD filter to be
1318 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001319
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001320 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001321
David Turner8765c712006-11-10 16:49:42 +000013222006-11-10 David Turner <david@freetype.org>
1323
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001324 * src/smooth/ftsmooth.c: API change for the LCD
1325 filter. The FT_LcdFilter value is an enumeration describing which
1326 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1327 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1328 algorithm which produces strong color fringes for everything
1329 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001330
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001331 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1332 second parameter to an enum type.
1333
1334 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1335 (_ft_lcd_filter): Rename to...
1336 (_ft_lcd_filter_fir): This.
1337 Update parameters.
1338 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1339 (FT_Library_Set_LcdFilter): Update parameters.
1340 Handle new filter modes.
1341
1342 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1343 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1344 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1345 callback and update other fields.
1346
1347 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1348 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1349 Other minor improvements.
1350
1351 * src/autofit/aflatin.c: Various tiny improvements that drastically
1352 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1353 (af_latin_hints_compute_edges): Fix typo.
1354 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001355
David Turner4e9cc3c2006-11-09 16:31:52 +000013562006-11-09 David Turner <david@freetype.org>
1357
Werner Lemberg49c77a82006-11-09 21:51:57 +00001358 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1359 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001360
Werner Lemberg5e430892006-11-07 09:35:03 +000013612006-11-07 Zhe Su <james.su@gmail.com>
1362
1363 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1364 also.
1365
Werner Lemberg111b5ae2006-11-03 09:40:12 +000013662006-11-03 Werner Lemberg <wl@gnu.org>
1367
1368 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1369
David Turner40604742006-11-02 16:37:35 +000013702006-11-02 David Turner <david@freetype.org>
1371
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001372 Add a few tweaks to better handle serif fonts.
1373 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001374
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001375 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1376 segments that are less than 1.5 pixels high. This gets rid of
1377 *many* corner cases with serifs.
1378 (af_latin_align_linked_edge): Add logging message.
1379 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1380 Add logging messages.
1381 Handle AF_EDGE_FLAG flag specially.
1382
1383 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1384 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1385
1386 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1387 Update external declarations.
1388 (af_corner_orientation, af_corner_is_flat): Replaced by...
1389
1390 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1391 ft_corner_is_flat): These declarations.
1392
1393 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1394 Comment out. Replaced by...
1395
1396 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1397 These functions. Update all callers.
1398 (FT_Add64) [!FT_LONG64]: Simplify.
1399
1400 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1401 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1402 production of garbage by missing lots of segments.
1403
1404 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1405
1406 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1407 [AF_DEBUG]: Set _af_debug_hints.
1408
1409
1410 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1411 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1412 and ft_corner_orientation.
1413
1414
1415 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001416
Werner Lemberge88c5262006-10-24 05:46:26 +000014172006-10-24 Werner Lemberg <wl@gnu.org>
1418
1419 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1420
1421 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1422 as argument.
1423
David Turnera1861392006-10-23 16:00:59 +000014242006-10-23 Zhe Su <zsu@novell.com>
1425
Werner Lemberg715e96e2006-10-24 05:28:45 +00001426 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1427 better deal with broken Asian fonts with strange glyphs, having
1428 self-intersections and other peculiarities. The used algorithm is
1429 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001430
David Turnere140f142006-10-23 08:56:57 +000014312006-10-23 David Turner <david@freetype.org>
1432
Werner Lemberg715e96e2006-10-24 05:28:45 +00001433 Speed up the CFF font loader. With some large CFF fonts,
1434 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001435
Werner Lemberg715e96e2006-10-24 05:28:45 +00001436 * src/cff/cffload.c (cff_get_offset): Removed.
1437 (cff_new_index): Inline functionality of `cff_get_offset'.
1438 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1439 (cff_charset_done): Call `cff_charset_free_cids'.
1440 (cff_charset_load): Call `cff_charset_compute_cids'.
1441 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1442
1443 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1444 with FT_NEXT_XXX.
1445
1446
1447 Speed up the Postscript hinter, with more than 100% speed increase
1448 on my machine.
1449
1450 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1451 psh_corner_orientation): New functions.
1452 (psh_glyph_compute_inflections): Merge loops for efficiency.
1453 Use `psh_corner_orientation'.
1454 (psh_glyph_init): Use `psh_corner_is_flat'.
1455 (psh_hint_table_find_strong_point): Renamed to...
1456 (psh_hint_table_find_strong_points): This.
1457 Rewrite, adding argument to handle all points at once.
1458 Update all callers.
1459 (PSH_MAX_STRONG_INTERNAL): New macro.
1460 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001461
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000014622006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1463
1464 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001465 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001466
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014672006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1468
1469 * docs/INSTALL.CROSS: New document file for cross-building.
1470
1471 * builds/unix/configure.raw: Preliminary cross-building support.
1472 Find native C compiler and pass it by CC_BUILD, and
1473 find suffix for native executable and pass it by EXEEXT_BUILD.
1474 Also suffix for target executable is passed by EXEEXT.
1475
Werner Lembergb9e6d692006-10-15 08:58:40 +00001476 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1477 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001478 CC_BUILD and EXEEXT_BUILD.
1479
Werner Lembergb9e6d692006-10-15 08:58:40 +00001480 * builds/exports.mk (APINAMES_EXE): Change the extension for
1481 apinames from the suffix for target (E) to that for building host
1482 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001483
Werner Lemberg82a07e92006-10-12 06:20:44 +000014842006-10-12 Werner Lemberg <wl@gnu.org>
1485
1486 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1487 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1488 which reference those files.
1489
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014902006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1491
Werner Lembergb9e6d692006-10-15 08:58:40 +00001492 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1493 embedded in freetype2.pc and freetype-config. Use it to record
1494 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001495
1496 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1497
1498 * builds/unix/freetype-config.in: Ditto.
1499
Werner Lemberg28e17d92006-10-11 17:27:47 +000015002006-10-11 Werner Lemberg <wl@gnu.org>
1501
1502 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1503 development.
1504
Jens Claudius336d2292006-10-03 08:53:37 +000015052006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1506
1507 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1508 argument to ft_setjmp.
1509
1510 * include/freetype/internal/ftvalid.h: Add comment that
1511 ft_validator_run must not be used.
1512
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015132006-10-01 Werner Lemberg <wl@gnu.org>
1514
1515 * src/base/ftbase.c: Undo change from 2006-09-30.
1516
1517 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1518
15192006-09-30 David Turner <david@freetype.org>
1520
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001521 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1522 s/unpatented_hinting/ignore_unpatented_hinter/.
1523 Update all callers.
1524
1525 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1526 auto-hinting shall be used or not.
1527
1528 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001529
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015302006-09-30 Werner Lemberg <wl@gnu.org>
1531
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001532 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1533 in use).
1534
1535 * src/base/ftbase.c: Include `ftlcdfil.c'.
1536
Werner Lemberg9b15ea32006-09-29 18:22:11 +000015372006-09-29 Werner Lemberg <wl@gnu.org>
1538
1539 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1540 overlapping segments. Bug reported by Stefan Koch.
1541
David Turnerad830712006-09-27 16:20:59 +000015422006-09-28 David Turner <david@freetype.org>
1543
Werner Lemberg2c002e12006-09-29 21:31:53 +00001544 Fix a bug in the automatic unpatented hinting support which prevents
1545 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001546
Werner Lemberg2c002e12006-09-29 21:31:53 +00001547 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1548 s/force_autohint/unpatented_hinting/. Update all callers.
1549
1550 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1551
1552 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001553
David Turner8a317cf2006-09-27 07:52:48 +000015542006-09-27 David Turner <david@freetype.org>
1555
Werner Lemberg2c002e12006-09-29 21:31:53 +00001556 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001557
David Turner8a317cf2006-09-27 07:52:48 +00001558
David Turnere140f142006-10-23 08:56:57 +00001559 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001560 In a default build, the function `FT_Library_SetLcdFilter' returns
1561 `FT_Err_Unimplemented_Feature'; you need to #define
1562 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1563 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001564
Werner Lemberg2c002e12006-09-29 21:31:53 +00001565 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001566
Werner Lemberg2c002e12006-09-29 21:31:53 +00001567 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1568 typedef.
1569 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1570 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001571
Werner Lemberg2c002e12006-09-29 21:31:53 +00001572 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1573 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001574
Werner Lemberg2c002e12006-09-29 21:31:53 +00001575 Handle subpixel rendering.
1576 Simplify function.
1577 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1578 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1579
1580 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1581 pointing to <freetype/ftlcdfil.h>.
1582
1583 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1584 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1585
1586 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001587
Werner Lemberge20df4a2006-09-27 06:29:21 +000015882006-09-26 David Bustin
1589
1590 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1591 correctly. Reported as Savannah bug #17843.
1592
David Turner6f8c6222006-09-26 15:42:44 +000015932006-09-26 David Turner <david@freetype.org>
1594
Werner Lemberg110246c2006-09-26 21:55:44 +00001595 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1596 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1597 horizontal and vertical hinting for the purpose of debugging the
1598 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001599
Werner Lemberg110246c2006-09-26 21:55:44 +00001600 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1601 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001602
Werner Lemberg110246c2006-09-26 21:55:44 +00001603 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1604
1605 * include/freetype/config/ftoption.h, devel/ftoption.h
1606 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1607 we want to compile LCD-optimized rendering code (à la ClearType) or
1608 not. The macro *must* be disabled in default builds of the library
1609 for patent reasons.
1610
1611 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1612 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1613 isn't defined at compile time. This only changes the content of the
1614 rendered glyph to match the one of normal gray-level rendering,
1615 hence clients should not need to be modified.
1616
1617 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001618
Werner Lemberg745ff2c2006-09-19 05:48:02 +000016192006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1620
1621 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1622 LWFN fails and both are available.
1623
David Turnerf3050052006-09-11 12:00:32 +000016242006-09-11 David Turner <david@freetype.org>
1625
Werner Lembergf9644552006-09-12 13:48:10 +00001626 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1627 report their English names through an Apple Roman
1628 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001629
Werner Lembergf9644552006-09-12 13:48:10 +00001630 If the font uses another name entry with language_id == English, it
1631 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001632
Werner Lembergf9644552006-09-12 13:48:10 +00001633 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1634 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001635
Werner Lemberg36d2eab2006-09-05 19:24:34 +000016362006-09-05 Werner Lemberg <wl@gnu.org>
1637
1638 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001639 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001640 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1641 `HAN NOM B.ttf').
1642
1643 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1644
David Turner772e55d2006-09-05 09:45:15 +000016452006-09-05 David Turner <david@freetype.org>
1646
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001647 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001648
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001649 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1650 (TRaster): Remove `count_ex' and `count_ey'.
1651 (gray_find_cell): Remove 2nd and 3rd argument.
1652 (gray_alloc_cell): Merged with `gray_find_cell'.
1653 (gray_record_cell): Simplify.
1654 (gray_set_cell): Rewrite.
1655 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1656 (gray_render_span): Don't use FT_MEM_SET for small values.
1657 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1658 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1659 bitmap scanline.
1660 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001661
David Turneraa557a92006-09-04 16:42:44 +000016622006-09-04 David Turner <david@freetype.org>
1663
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001664 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1665 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001666
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016672006-09-03 Werner Lemberg <wl@gnu.org>
1668
1669 * devel/ftoption.h: Synchronize with
1670 include/freetype/config/ftoption.h.
1671
1672 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1673 variable declaration.
1674 (gray_convert_glyph): Fix compiler warnings.
1675
David Turner6d79f212006-09-01 14:09:35 +000016762006-09-01 David Turner <david@freetype.org>
1677
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001678 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1679 to recognize a few fonts that require the automatic unpatented
1680 loader.
David Turnerbd502952006-09-01 19:05:24 +00001681
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001682 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1683 rasterizer. The speed improvement is between 15% and 25%, depending
1684 on the font data.
1685
1686 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1687 (TCell): Redefine.
1688 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1689 (gray_init_cells): Updated.
1690 (gray_find_cell, gray_alloc_cell): New functions.
1691 (gray_record_cell): Rewritten to use `gray_find_cell' and
1692 `gray_alloc_cell'.
1693 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1694 QSORT_THRESHOLD):
1695 Removed.
1696 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1697 gray_dump_cells): Removed.
1698 (gray_sweep): Rewritten.
1699 (gray_convert_glyph): Rewrite code which used one of the sorting
1700 functions.
1701 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001702
Werner Lembergd898aed2006-08-29 09:50:34 +000017032006-08-29 Dr. Werner Fink <werner@suse.de>
1704
1705 * configure: Make it possible to handle configure options which
1706 have strings containing spaces.
1707
17082006-08-27 David Turner <david@freetype.org>
1709
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001710 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1711 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1712 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1713
1714 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1715 src/truetype/truetype.c, src/truetype/ttdriver.c,
1716 src/truetype/ttgload.c, src/truetype/ttgload.h,
1717 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1718 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1719 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1720
1721 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1722 member `force_autohint'.
1723
1724 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1725
1726 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1727 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001728
Jens Claudiusa787f452006-08-27 11:26:18 +000017292006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1730
1731 Fix miscellaneous compiler warnings.
1732
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001733 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1734 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001735
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001736 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1737 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1738 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001739
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001740 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1741 volatileness of argument to ft_longjmp. Spotted by Werner
1742 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001743
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001744 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1745 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001746
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001747 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1748 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001749
Werner Lembergc4c35b72006-08-27 08:03:46 +000017502006-08-27 Werner Lemberg <wl@gnu.org>
1751
1752 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1753 Reported by Jens.
1754
Jens Claudius088e44e2006-08-22 14:24:30 +000017552006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001756
Jens Claudius088e44e2006-08-22 14:24:30 +00001757 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001758 about addresses of volatile objects passed as function arguments as
1759 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001760
Werner Lembergc4c35b72006-08-27 08:03:46 +00001761 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1762 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001763
1764 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1765 argument `table' a pointer to a volatile object.
1766
1767 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1768 argument `table' a pointer to a volatile object.
1769
Jens Claudius2652bd52006-08-18 17:20:37 +000017702006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1771
1772 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1773 variable `_sfnt' as volatile since it must keep its value across
1774 a call to ft_setjmp.
1775 (gxv_validate): Same for local variables `memory' and `valid'.
1776 (classic_kern_validate): Same for local variables `memory',
1777 `ckern', and `valid'.
1778
1779 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1780 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1781 `jstf', and 'valid'.
1782
1783 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1784 local variable `cmap'.
1785
David Turner9fbfc6a2006-08-16 09:11:31 +000017862006-08-16 David Turner <david@freetype.org>
1787
Werner Lemberg12342992006-08-19 11:18:09 +00001788 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1789 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001790
Werner Lemberg12342992006-08-19 11:18:09 +00001791 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1792 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001793
David Turner33f5f242006-08-16 16:50:55 +00001794
Werner Lemberg12342992006-08-19 11:18:09 +00001795 Improvements to native TrueType hinting. This is a first try,
1796 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1797
1798 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1799 `extra_points2'.
1800
1801 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1802 `orus'.
1803
1804 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1805 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1806 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1807 handle `extra_points2'.
1808
1809 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1810 Remove compiler warning.
1811 (cur_to_arg): Remove macro.
1812 (TT_Hint_Glyph): Updated.
1813 (TT_Process_Simple_Glyph): Handle `orus'.
1814
1815 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1816 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1817 (LOC_Ins_IUP): Renamed to...
1818 (IUP_WorkerRec): This.
1819 Add `orus' member.
1820 (Shift): Renamed to...
1821 (_iup_worker_shift): This.
1822 Updated.
1823 (Interp): Renamed to...
1824 (_iup_worker_interpolate): This.
1825 Updated to handle `orus'.
1826 (Ins_IUP): Updated.
1827
1828 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1829 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001830
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000018312006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1832
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001833 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001834 build ftvalid in ft2demos. This has been inadvertedly changed
1835 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001836
18372006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1838
Werner Lemberg12342992006-08-19 11:18:09 +00001839 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1840 Jens:
1841 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001842
Werner Lemberg12342992006-08-19 11:18:09 +00001843 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1844 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001845
1846 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1847
Jens Claudius9950adc2006-08-13 12:14:36 +000018482006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1849
Werner Lemberg12342992006-08-19 11:18:09 +00001850 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1851 T1_TOKEN_TYPE_KEY.
1852 (T1_FieldRec): Add `dict'.
1853 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1854 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1855 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001856
Werner Lemberg12342992006-08-19 11:18:09 +00001857 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1858 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001859
1860 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1861
1862 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001863 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1864 not T1_TOKEN_TYPE_ANY.
1865 (ps_parser_load_field): Make sure a token that should be a string or
1866 name is really a string or name.
1867 Avoid memory leak if a keyword has been already encountered and its
1868 value is overwritten.
1869 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1870 T1_FIELD_XXX.
1871 (parse_dict): Ignore keywords that occur in the wrong dictionary
1872 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001873
Werner Lemberg12342992006-08-19 11:18:09 +00001874 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1875 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001876
Werner Lemberg12342992006-08-19 11:18:09 +00001877 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1878 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001879
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000018802006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1881
1882 Move creation of field `buildchar' of T1_DecoderRec out of
1883 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1884 of it.
1885
1886 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1887 and `T1_Compute_Max_Advance'.
1888
1889 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1890 Remove field `face', add `len_buildchar'.
1891
1892 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1893 field `buildchar'.
1894
1895 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1896 finisher for T1_Decoder.
1897 (cid_slot_load_glyph): Do not ignore failure when initializing the
1898 T1_Decoder.
1899
1900 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1901 Updated.
1902 (t1_decoder_init): Remove initialization of fields `buildchar' and
1903 `len_buildchar'.
1904 (t1_decoder_done): Remove deallocation of field `buildchar'.
1905
1906 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1907 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1908 T1_Decoder.
1909 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1910 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1911 case of error.
1912
1913 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1914 `buildchar' of T1_FaceRec.
1915
1916 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1917 `buildchar' of T1_FaceRec.
1918
Werner Lemberg1a380e02006-07-14 18:28:08 +000019192006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1920
1921 * freetype2/include/freetype/internal/psaux.h: New macros
1922 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1923 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1924 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1925 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1926 (T1_DecoderRec): New fields `buildchar' and `face'.
1927 (IS_PS_TOKEN): New macro.
1928
1929 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1930 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1931
1932 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1933 `default_design_vector' and `num_default_design_vector'.
1934
1935 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1936 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1937 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1938
1939 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1940 `token' argument to be NULL if we want only to count the number of
1941 tokens.
1942 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1943 want to skip the array.
1944 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1945 want to skip the array.
1946
1947 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1948 support for (partially commented out) othersubrs 19-25, 27, and 28.
1949 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1950 (t1_decoder_done): Release new field `buildchar'.
1951
1952 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1953 functions.
1954 (t1_keywords): Register them.
1955 (t1_allocate_blend): Updated.
1956 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1957 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1958 (parse_dict): Remove `keyword_flags' argument.
1959 Use new macro IS_PS_TOKEN.
1960 Changed function so that later PostScript definitions override
1961 earlier ones.
1962 (t1_init_loader): Initialize new field `keywords_encountered'.
1963 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1964 `len_buildchar'.
1965 Remove `keywords_flags'.
1966
1967 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1968 `keywords_encountered'.
1969 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1970
1971 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1972 New entries for parsing /NDV, /CDV, and /DesignVector.
1973
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000019742006-07-07 Werner Lemberg <wl@gnu.org>
1975
1976 Add many checks to protect against malformed PCF files.
1977
1978 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1979 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1980
1981 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1982 data and check that tables don't overlap (using a simple
1983 bubblesort).
1984 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1985 New macros which give the size of data structures in the data
1986 stream.
1987 (pcf_get_properties): Use rough estimates to get array size limits.
1988 Assign `face->nprops' and `face->properties' earlier so that a call
1989 to PCF_Face_Done can do the clean-up in case of error.
1990 Protect against invalid string offsets.
1991 (pcf_get_metrics): Clean up code.
1992 Adjust tracing message levels.
1993 Use rough estimate to get array size limit.
1994 (pcf_get_bitmaps): Clean up code.
1995 Adjust tracing message levels.
1996 Use rough estimates to get offset limits.
1997 (pcf_get_encodings): Adjust tracing message level.
1998 (pcf_get_accel): Clean up code.
1999
Werner Lemberg8eb05252006-06-27 06:20:01 +000020002006-06-26 Werner Lemberg <wl@gnu.org>
2001
2002 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2003 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2004
Werner Lemberg24703f82006-06-26 19:12:51 +000020052006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2006
2007 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2008 (t1_decoder_parse_charstrings): Operator with
2009 opcode 15 pops its two arguments.
2010 Handle the case where the pops of an othersubr may be part of a
2011 subroutine.
2012 Handle unknown othersubrs gracefully: count their operands and let
2013 the following pop operators push the operands as the results onto
2014 the Type1 stack.
2015 Improve handling of setcurrentpoint opcode.
2016
Werner Lembergc011f4c2006-06-26 09:40:00 +000020172006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2018
2019 The Type 1 parser now skips over top-level procedures as required
2020 for a `Simplified Parser'. This makes the parser more robust as it
2021 doesn't poke around in PostScript code. Additionally, it makes the
2022 FontDirectory hackery in src/type1/t1load.c unnecessary.
2023
2024 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2025 (skip_literal_string): Add FT_Error as return value.
2026 Handle escapes better.
2027 (skip_string): Add FT_Error as return value.
2028 Don't set `parser->error' but return error code directly.
2029 (skip_procedure): New function.
2030 (ps_parser_skip_PS_token): Handle procedures.
2031 Update code.
2032 (ps_parser_to_token): Update code.
2033 (ps_parser_load_field_table): Handle bbox entries also.
2034
2035 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2036 Add commented-out code for synthetic fonts.
2037
Werner Lemberga2da05c2006-06-25 06:27:27 +000020382006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2039
2040 Fix two hinting bugs as reported in
2041 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2042
2043 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2044 `first_point' member.
2045
2046 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2047 `first_point'.
2048 (TT_Process_Composite_Glyph): Always untouch points.
2049
2050 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2051 `first_point' and `last_point' in case of composite glyphs.
2052 (Ins_IUP): Fix computation of `end_point'.
2053
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020542006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2055
Werner Lembergef3d2c22006-06-25 06:07:14 +00002056 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2057 Mac. The original patch was written by David Sachitano and Lawrence
2058 Coopet, and modified by Sean McBride for MPW compatibility. Only
2059 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002060
Werner Lembergef3d2c22006-06-25 06:07:14 +00002061 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2062 Mac OS X platforms.
2063 (OS_INLINE): Undefine before definition.
2064 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2065 FontAssociation table in FOND resource.
2066 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2067 and fontSize at each entry of FontAssociation table in FOND
2068 resource.
2069 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2070 ffStylOff of FamilyRecord header of FOND resource, the header,
2071 fontSize, fontID at each entry of FontAssociation table, and
2072 StyleMapping table.
2073 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002074
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000020752006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2076
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002077 Public API of TrueTypeGX, OpenType, and classic kern table validator
2078 should return `FT_Err_Unimplemented_Feature' if validation service
2079 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002080 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002081 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2082
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002083 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2084 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2085 unavailable.
2086 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2087 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002088
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002089 * src/base/ftotval.c (FT_OpenType_Validate): Return
2090 FT_Err_Unimplemented_Feature if OpenType validation service is
2091 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002092
Werner Lembergb10e45a2006-06-08 07:32:56 +000020932006-06-08 Werner Lemberg <wl@gnu.org>
2094
2095 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2096 errors.
2097
David Turner5f1f7502006-06-07 05:11:50 +000020982006-06-07 David Turner <david@freetype.org>
2099
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002100 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2101 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2102 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002103
David Turner457b4a82006-06-06 08:14:14 +000021042006-06-06 David Turner <david@freetype.org>
2105
Werner Lemberg4836f952006-06-06 12:54:08 +00002106 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002107
Werner Lemberg4836f952006-06-06 12:54:08 +00002108 We change `ps_unicodes_init' so that it also takes a
2109 `free_glyph_name' callback to release the glyph names returned by
2110 `get_glyph_name'
2111
2112 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2113 Renamed to ...
2114 (PS_GetGlyphNameFunc): This.
2115 (PS_FreeGlyphNameFunc): New typedef.
2116 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2117
2118 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2119 argument.
2120 (cff_sid_free_glyph_name): New function.
2121 (cff_cmap_unicode_init): Updated.
2122
2123 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2124
2125 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2126 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002127
2128
David Turner09717352006-06-04 14:33:08 +000021292006-06-04 David Turner <david@freetype.org>
2130
Werner Lembergd724f202006-06-04 15:17:41 +00002131 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2132 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002133 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002134
Werner Lembergd724f202006-06-04 15:17:41 +00002135 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2136 of `face->num_glyphs' which missed the last glyph, due to
2137 the offset-by-1 computation, since the PFR format doesn't
2138 guarantee that glyph index 0 corresponds to the `missing
2139 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002140
Werner Lemberg33779662006-05-26 06:30:05 +000021412006-05-25 Werner Lemberg <wl@gnu.org>
2142
2143 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2144 `-no-undefined'. Reported by Christian Biesinger.
2145
Werner Lemberg24773d62006-05-20 08:53:13 +000021462006-05-19 Brian Weed <bw@imaginengine.com>
2147
2148 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2149 have debug information, and debug libraries use `C7 compatible'
2150 debug info.
2151
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021522006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2153
Werner Lemberga6523a62006-05-20 08:47:01 +00002154 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002155 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002156
Werner Lemberga6523a62006-05-20 08:47:01 +00002157 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2158 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002159
2160 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002161 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002162
21632006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2164
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002165 * build/unix/configure.raw: Add a fallback to disable Carbon
2166 dependency, if configured with no options on Mac OS X.
2167
21682006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2169
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002170 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002171 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002172 the second part of Savannah bug #16590.
2173
Werner Lemberg545c4e52006-05-17 22:55:04 +000021742006-05-18 Werner Lemberg <wl@gnu.org>
2175
2176 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2177 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2178
David Turnerdc3ff312006-05-17 12:59:35 +000021792006-05-17 David Turner <david@freetype.org>
2180
Werner Lemberg545c4e52006-05-17 22:55:04 +00002181 This is a major patch used to drastically improve the performance of
2182 loading glyphs. This both speeds up loading the glyph vectors
2183 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002184
Werner Lemberg545c4e52006-05-17 22:55:04 +00002185 We now use inline assembler code with GCC to implement `FT_MulFix',
2186 which is probably the most important function related to the
2187 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002188
Werner Lemberg545c4e52006-05-17 22:55:04 +00002189 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002190
2191
Werner Lemberg545c4e52006-05-17 22:55:04 +00002192 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2193 `cursor' and `limit'.
2194
2195 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2196 New functions.
2197 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2198 [TEST]: Remove.
2199
2200 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2201 code.
2202
2203 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2204 `FT_ZERO'
2205 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2206 (af_glyph_hints_reload: Rewrite recognition of weak points.
2207
2208 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2209 constant values out of the loops.
2210
2211 * src/autofit/aftypes.h: Updated.
2212
2213 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2214
2215 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2216 product to get orientation.
2217
2218 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2219 (FT_Stream_OpenGzip): Use it to handle small files directly in
2220 memory.
2221
2222 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2223 Improve performance.
2224
2225 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2226 `limit'.
2227
2228 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2229 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2230 exceedingly large values of number of contours. Speed up by
2231 reducing the number of loops.
2232
2233 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2234
2235
2236 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2237 used to detect rogue clients from 4 to 16. This is to prevent some
2238 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2239 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002240
Werner Lembergde2d90a2006-05-17 08:54:30 +000022412007-05-17 Werner Lemberg <wl@gnu.org>
2242
2243 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002244 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002245
22462006-05-16 Werner Lemberg <wl@gnu.org>
2247
2248 * docs/PROBLEMS: Updated icl issues.
2249
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002250----------------------------------------------------------------------------
2251
Werner Lemberg42b63b22007-01-21 21:01:33 +00002252Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002253David Turner, Robert Wilhelm, and Werner Lemberg.
2254
2255This file is part of the FreeType project, and may only be used, modified,
2256and distributed under the terms of the FreeType project license,
2257LICENSE.TXT. By continuing to use, modify, or distribute this file you
2258indicate that you have read the license and understand and accept it
2259fully.
2260
2261
2262Local Variables:
2263version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002264coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002265End: