blob: 2c71503a056a0c3dacad3e1d94b772cac811695f [file] [log] [blame]
David Turnerb7920172007-06-11 05:37:35 +000012007-06-11 David Turner <david@freetype.org>
2
David Turnerb38c15d2007-06-11 19:36:48 +00003 * src/autofit/aflatin,c: fix incorrect segment linking computation,
4 this was the root cause of bug #19565.
5
6
David Turnerb7920172007-06-11 05:37:35 +00007 * src/autofit/*: some very experimental changes to improve the Latin
8 auto-hinter. note that the new code is disabled by default since this
9 is not stablizied yet.
10
Werner Lembergf6c120f2007-06-11 04:55:58 +0000112007-06-11 Werner Lemberg <wl@gnu.org>
12
Werner Lembergcf7b7642007-06-11 04:58:01 +000013 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +000014
David Turner84c6f882007-06-10 20:51:04 +0000152007-06-10 David Turner <david@freetype.org>
16
Werner Lembergf6c120f2007-06-11 04:55:58 +000017 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
18 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +000019
Werner Lembergf6c120f2007-06-11 04:55:58 +000020 * include/freetype/config/ftoption.h: Clarify documentation
21 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +000022
Werner Lembergf6c120f2007-06-11 04:55:58 +000023
24 Add new `FT_Face_CheckTrueTypePatents' API.
25
26 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
27 declaration.
28
29 * include/freetype/internal/services/svttglyf.h,
30 src/base/ftpatent.c: New files.
31
32 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
33 New macro.
34
35 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
36 `ttpload.h'.
37 (tt_service_truetype_glyf): New service structure.
38 (tt_services): Register it.
39
40 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
41 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +000042
Werner Lemberg33db39e2007-06-08 06:30:29 +0000432007-06-08 Werner Lemberg <wl@gnu.org>
44
David Turner84c6f882007-06-10 20:51:04 +000045 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +000046 Fonts without a cmap must be handled correctly by FreeType (anything
47 else would be a bug).
48
49
50 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
51 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
52
Werner Lemberg88ab6382007-06-07 05:01:56 +0000532007-06-07 Werner Lemberg <wl@gnu.org>
54
55 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
56 tt_sbit_decoder_load_image): Protect against integer overflows.
57
58
59 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
60 for `x_control' and `y_control'.
61
Werner Lemberg2a2dca62007-06-06 04:39:37 +0000622007-06-06 Werner Lemberg <wl@gnu.org>
63
64 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
65
Werner Lemberga8d65492007-06-06 04:47:49 +000066
67 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
68 FreeType error.
69
Werner Lemberg470210b2007-06-06 10:05:49 +000070
71 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
72 `font_count'.
73
74
75 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
76
77
78 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
79 `FT_Error'.
80 Check `fd_index'.
81 (cff_slot_load): Updated.
82 * src/cff/cffgload.h: Updated.
83
Werner Lemberg6c054752007-06-05 05:27:54 +0000842007-06-05 Werner Lemberg <wl@gnu.org>
85
86 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
87 (pfr_glyph_load_simple): Convert assertion into normal FreeType
88 error.
89 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000090 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
91 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000092
93 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
94
Werner Lembergf4bc3f42007-06-05 07:32:15 +000095
Werner Lemberg470210b2007-06-06 10:05:49 +000096 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +000097
Werner Lemberge5c14d92007-06-05 20:50:37 +000098
99 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
100 in case of parsing error.
101 (ps_parser_load_field): Updated.
102
103 * src/type1/t1load.c (parse_font_matrix): Updated.
104
Werner Lembergad18b362007-06-04 07:04:05 +00001052007-06-04 Werner Lemberg <wl@gnu.org>
106
107 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
108
109 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
110
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001112007-06-03 Werner Lemberg <wl@gnu.org>
112
Werner Lemberg99a320b2007-06-03 19:21:26 +0000113 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
114 George Williams (with some modifications).
115
1162007-06-03 Werner Lemberg <wl@gnu.org>
117
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000118 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
119 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
120 face == NULL. Suggested by Graham Asher.
121
Werner Lembergce280a22007-06-03 05:58:30 +00001222007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
123
124 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
125
Werner Lemberg5b591e42007-06-01 22:16:43 +00001262007-06-02 Werner Lemberg <wl@gnu.org>
127
128 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
129 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
130
131 * src/bdf/bdflib.c (bdf_load_font): Use them.
132
133 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
134
Werner Lembergb9933f42007-06-01 21:27:12 +00001352007-06-01 Werner Lemberg <wl@gnu.org>
136
137 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
138 (FTC_CMapCache_Lookup): Remove unused code.
139
Werner Lembergc793d902007-06-01 20:51:11 +00001402007-06-01 Sean McBride <sean@rogue-research.com>
141
142 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
143 unused.
144
Werner Lembergbebc7b12007-06-01 06:32:30 +00001452007-06-01 Werner Lemberg <wl@gnu.org>
146
147 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
148 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000149 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000150
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000151 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
152 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
153
Werner Lembergba03af62007-05-30 13:57:02 +00001542007-05-30 Werner Lemberg <wl@gnu.org>
155
156 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
157 against too small binary data strings.
158
159 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
160
David Turnerf0cd69c2007-05-28 15:42:09 +00001612007-05-28 David Turner <david@freetype.org>
162
Werner Lemberg99e0c182007-05-29 07:00:23 +0000163 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
164 transformation. This significantly reduces the loading time of CFF
165 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000166
Werner Lemberg99e0c182007-05-29 07:00:23 +0000167 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000168
Werner Lemberg99e0c182007-05-29 07:00:23 +0000169 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
170 hinting script to CJK, since it works well with more scripts than
171 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
172 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000173
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001742007-05-25 Werner Lemberg <wl@gnu.org>
175
176 * docs/CHANGES: Updated.
177
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001782007-05-24 Werner Lemberg <wl@gnu.org>
179
180 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
181 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
182
1832007-05-24 Graham Asher <graham.asher@btinternet.com>
184
185 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
186 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
187
David Turner0d0365e2007-05-22 09:53:44 +00001882007-05-22 David Turner <david@freetype.org>
189
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000190 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
191 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000192
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000193
194 Avoid heap blowup with very large .Z font files. This fixes
195 Savannah bug #19910.
196
197 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
198 `in_limit', `pad', `pad_bits', and `in_buff' members.
199 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
200 `buf_total' members.
201
202 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
203 only one argument.
204 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000205
2062007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000207
208 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
209 (ps_dimension_set_mask_bits): Remove `const'.
210
David Turner0d0365e2007-05-22 09:53:44 +00002112007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000212
213 * src/sfnt/ttmtx.c (tt_face_get_metrics)
214 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
215
Werner Lembergb826fa72007-05-19 07:18:48 +00002162007-05-19 Derek Clegg <dclegg@apple.com>
217
218 Savannah patch #5929.
219
220 * include/freetype/tttables.h, src/base/ftobjcs.c
221 (FT_Get_CMap_Format): New function.
222
223 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
224 `format' member.
225 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
226 cmap_info->format.
227
Werner Lemberg6f99c882007-05-19 07:01:49 +00002282007-05-19 Werner Lemberg <wl@gnu.org>
229
230 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
231 before handling subglyphs so that it can be reinitialized each time.
232 This fixes Savannah bug #19859.
233
Werner Lemberg95bc9d32007-05-16 15:19:42 +00002342007-05-16 Werner Lemberg <wl@gnu.org>
235
236 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
237 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
238 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
239 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
240 tt_face_get_metrics): Fix type-punning issues.
241
David Turner0a24bd22007-05-15 10:54:10 +00002422007-05-15 David Turner <david@freetype.org>
243
244 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000245 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
246 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000247 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000248 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000249
Werner Lemberg607dec72007-05-15 06:49:37 +00002502007-05-15 Graham Asher <graham.asher@btinternet.com>
251
252 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
253 variable.
254 * src/autofit/afloader.c (af_loader_load_g): Ditto.
255
256 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
257 (open_face_from_buffer): Initialize `stream'.
258 (FT_Request_Metrics): Remove unused variable.
259 Remove redundant `break' statements.
260 (FT_Get_Track_Kerning): Remove unused variable.
261
262 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
263 afm_parse_kern_data): Remove redundant
264 `break' statements.
265 (afm_parser_parse): Ditto.
266 Don't use uninitialized variables.
267
268 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
269 Use `|' operator instead of `^' to set it.
270 Update all users.
271
272 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
273 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
274
275 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
276 comparison.
277 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
278 (TT_Load_Glyph): Remove unused variable.
279
Werner Lemberg8d463a52007-05-13 16:01:55 +00002802007-05-13 Derek Clegg <dclegg@apple.com>
281
282 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
283 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
284
David Turner711cf842007-05-11 14:36:24 +00002852007-05-11 David Turner <david@freetype.org>
286
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000287 * src/cache/ftbasic.c, include/freetype/ftcache.h
288 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
289 functions that allow us to look up glyphs using an FTC_Scaler object
290 to specify the size, making it possible to use fractional pixel
291 sizes.
292
293 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
294 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000295
Werner Lemberg94be20e2007-05-09 20:02:55 +00002962007-05-09 Graham Asher <graham.asher@btinternet.com>
297
298 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
299 (af_latin_metrics_scale_dim): Fix compiler warnings.
300
Werner Lemberg41271032007-05-06 04:51:48 +00003012007-05-06 Werner Lemberg <wl@gnu.org>
302
303 * builds/win32/visualce/freetype.sln: Removed, as requested by
304 Vincent.
305
Werner Lembergdf49e692007-05-04 06:30:05 +00003062007-05-04 Vincent RICHOMME <richom.v@free.fr>
307
308 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
309 PC targets.
310
311 * docs/CHANGES: Document them.
312
3132007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000314
315 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
316 mmap (which might happen on some RTOS). From Savannah patch #5909.
317
Werner Lemberg106eaf12007-05-03 07:07:47 +00003182007-05-03 Werner Lemberg <wl@gnu.org>
319
320 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
321 * include/freetype/freetype.h (FT_Set_Char_Size): Update
322 documentation.
323
Werner Lemberg1b5267d2007-04-28 21:06:15 +00003242007-04-28 Victor Stinner <victor.stinner@inl.fr>
325
326 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
327 `cmap'.
328
Werner Lembergcc712a22007-04-27 17:16:50 +00003292007-04-27 Werner Lemberg <wl@gnu.org>
330
331 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
332 number of points in contours. Problem reported by Victor Stinner
333 <victor.stinner@haypocalc.com>.
334 (TT_Process_Simple_Glyph): Synchronize variable types.
335
Werner Lemberg45bb18f2007-04-26 06:26:35 +00003362007-04-26 Werner Lemberg <wl@gnu.org>
337
338 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
339 zero in case of error. This fixes Savannah bug #19689.
340
David Turnera8b45e62007-05-11 14:10:30 +00003412007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
342
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000343 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
344 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000345
Werner Lembergfcc1f472007-04-10 11:51:50 +00003462007-04-10 Martin Horak <horakm@centrum.cz>
347
348 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
349 Ignore `hhea' table. This fixes Savannah bug #19261.
350
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003512007-04-09 Werner Lemberg <wl@gnu.org>
352
353 * Version 2.3.4 released.
354 =========================
355
356
357 Tag sources with `VER-2-3-4'.
358
359 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
360 version number to 2.3.4.
361
362 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
363 builds/win32/visualc/freetype.dsp,
364 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
365
366 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
367
368 * builds/unix/configure.raw (version_info): Set to 9:15:3.
369
Werner Lembergf4a52a62007-04-09 08:40:11 +00003702007-04-09 Martin Horak <horakm@centrum.cz>
371
372 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
373 memory stream to avoid a crash with the incremental memory
374 interface (Savannah bug #19260).
375
David Turner1dcb4442007-04-06 08:19:04 +00003762007-04-06 David Turner <david@freetype.org>
377
Werner Lembergc81cf612007-04-06 09:28:23 +0000378 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
379 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000380
Werner Lemberg9f83e052007-04-05 02:28:23 +00003812007-04-04 Werner Lemberg <wl@gnu.org>
382
383 * Version 2.3.3 released.
384 =========================
385
386
387 Tag sources with `VER-2-3-3'.
388
389 * docs/CHANGES: Mention CVE-2007-1351.
390
David Turner7338ec22007-04-03 14:30:34 +00003912007-04-03 David Turner <david@freetype.org>
392
393 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000394 if one of the resolution values is 0, treat it as if it were the
395 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000396
David Turnere6472c12007-04-02 13:13:54 +00003972007-04-02 David Turner <david@freetype.org>
398
Werner Lemberg94f12272007-04-03 07:19:53 +0000399 Add special code to detect `extra-light' fonts and do not snap their
400 stem widths too much to avoid bizarre hinting effects.
401
402 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
403 `extra_light' members.
404
405 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
406 them.
407 (af_latin_metrics_scale_dim): Set `extra_light'.
408 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000409
David Turner3f539692007-03-28 14:53:40 +00004102007-03-28 David Turner <david@freetype.org>
411
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000412 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000413 padding.
414
Werner Lemberga08b2172007-03-28 07:17:17 +00004152007-03-28 Werner Lemberg <wl@gnu.org>
416
417 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
418 gracefully.
419 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000420 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000421 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
422 number of code points in Unicode.
423
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000424 * builds/win32/visualc/index.html,
425 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000426 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000427 s/232/233/.
428
429 * docs/CHANGES: Mention ftdiff.
430
David Turner3b242d32007-03-26 12:03:04 +00004312007-03-26 David Turner <david@freetype.org>
432
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000433 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
434 corresponding code.
435 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000436
Werner Lemberga08b2172007-03-28 07:17:17 +0000437 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000438 computations in order to ignore single-point contours. These are
439 never rasterized and correspond in certain fonts to mark-attach
440 points that are very far from the glyph's real outline, ruining the
441 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000442
Werner Lemberga08b2172007-03-28 07:17:17 +0000443 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000444 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000445 Otherwise code that uses them will most certainly ruin the fixed
446 advance property.
David Turner23553d62007-03-26 13:37:17 +0000447
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000448 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
449 documentation and bump version number to 2.3.3.
450
451 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
452
453 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000454
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00004552007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
456
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000457 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
458 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000459 * builds/vms/ftconfig.h: Ditto.
460 * include/freetype/config/ftconfig.h: Ditto.
461
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004622007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
463
Werner Lemberg14ffe092007-03-22 06:12:43 +0000464 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
465 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000466 proposed by Sean McBride:
467 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
468
4692007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
470
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000471 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
472 setjmp, proposed by Sean McBride:
473 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
474
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004752007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
476
Werner Lembergc9f6c662007-03-21 13:30:14 +0000477 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
478 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
479 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000480
David Turner74c34eb2007-03-18 07:19:31 +00004812007-03-18 David Turner <david@freetype.org>
482
Werner Lembergc9f6c662007-03-21 13:30:14 +0000483 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
484 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000485
Werner Lembergc9f6c662007-03-21 13:30:14 +0000486 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000487
David Turner89020d92007-03-17 17:48:57 +00004882007-03-17 David Turner <david@freetype.org>
489
Werner Lembergc9f6c662007-03-21 13:30:14 +0000490 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
491 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000492
Werner Lemberg25d592a2007-03-09 07:59:35 +00004932007-03-09 Werner Lemberg <wl@gnu.org>
494
495 * Version 2.3.2 released.
496 =========================
497
498
499 Tag sources with `VER-2-3-2'.
500
501 * builds/win32/visualc/index.html,
502 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000503 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000504 s/231/232/.
505
David Turner3a51afa2007-03-08 10:50:38 +00005062007-03-08 David Turner <david@freetype.org>
507
Werner Lemberg25d592a2007-03-09 07:59:35 +0000508 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000509
Werner Lemberg25d592a2007-03-09 07:59:35 +0000510 * builds/unix/configure.raw (version_info): Set to 9:13:3.
511
512 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
513
514 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000515
Werner Lemberg1e259de2007-03-08 15:39:21 +0000516 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
517 function to work properly, over-writing user-provided buffers in
518 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000519
David Turner121cad52007-03-08 16:43:50 +0000520
Werner Lemberg3d92f082007-03-06 11:59:24 +00005212007-03-05 Werner Lemberg <wl@gnu.org>
522
523 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
524 macro for `strstr'.
525
526 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
527 `trick_names', as suggested by Ivan Nincic.
528
David Turner085bc6e2007-03-05 17:40:03 +00005292007-03-05 David Turner <david@freetype.org>
530
Werner Lembergd112cf02007-03-06 12:06:56 +0000531 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
532 case FT_Init_FreeType fails for some reason. Problem reported by
533 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000534
Werner Lembergd112cf02007-03-06 12:06:56 +0000535 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
536 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
537 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
538 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000539
Werner Lembergd112cf02007-03-06 12:06:56 +0000540 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
541 signed values, not unsigned ones. Problem reported by Johannes
542 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000543
David Turner601aefe2007-02-21 16:47:49 +00005442007-02-21 David Turner <david@freetype.org>
545
Werner Lembergde5e6862007-02-25 21:06:43 +0000546 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
547 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000548
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00005492007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
550
551 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
552 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
553 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
554
Werner Lemberga0915172007-02-16 08:12:50 +00005552007-02-16 Werner Lemberg <wl@gnu.org>
556
557 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
558 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
559
David Turner2c4500e2007-02-14 15:08:47 +00005602007-02-14 David Turner <david@freetype.org>
561
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000562 It seems that the following changes fix most of the known
563 interpreter problems with my fonts, but more testing is needed,
564 though.
565
566 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
567 (TT_MulFix14): Rewrite.
568 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
569 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000570
Werner Lembergc6a14082007-02-12 22:08:15 +00005712007-02-12 Werner Lemberg <wl@gnu.org>
572
573 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
574 warnings.
575
576 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
577 (bdf_interpret_style): Ditto.
578
David Turnerc0f9c4a2007-02-12 14:55:03 +00005792007-02-12 David Turner <david@freetype.org>
580
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000581 Simplify projection and dual-projection code interface.
582
Werner Lemberg406d25f2007-02-12 22:01:18 +0000583 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
584 FT_Vector' as argument type.
585 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
586 Updated.
587 (CUR_fast_project, CUR_fast_dualproj): New macros.
588 (Project, Dual_Project, Project_x, Project_y): Updated.
589 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
590 macros.
591
592
593 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
594 adjustments for the non-light auto-hinted modes. Gets rid of
595 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000596
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000597 * src/autofit/aflatin.c (af_latin_hints_link_segments,
598 af_latin_hints_compute_edges): Slight optimization of the segment
599 linker and better handling of serif segments to get rid of broken
600 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000601
David Turnerc0f9c4a2007-02-12 14:55:03 +0000602
Werner Lemberg442bfb82007-02-12 21:44:10 +0000603 Introduce new string functions and the corresponding macros to get
604 rid of various uses of strcpy and other `evil' functions, as well as
605 to simplify a few things.
606
607 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
608 ft_mem_strcpyn): New declarations.
609 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
610 macros.
611 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
612 functions.
613
614 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
615 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
616 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
617 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
618 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
619 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
620 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
621 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000622
Werner Lemberg406d25f2007-02-12 22:01:18 +0000623 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
624
Werner Lemberg582067d2007-02-11 15:03:05 +00006252007-02-11 Werner Lemberg <wl@gnu.org>
626
627 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
628 non-spacing glyphs.
629
Werner Lemberg8f474532007-02-07 08:31:01 +00006302007-02-07 Tom Parker <palfrey@tevp.net>
631
632 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
633 pointer.
634
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006352007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
636
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000637 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
638 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000639 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000640 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
641 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
642 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
643 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000644
645 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
646 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000647 * builds/mac/ftmac.c: Ditto.
648
6492007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
650
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000651 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000652 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000653 #include <ftmac.c>.
654
6552007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
656
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000657 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
658 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
659 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
660 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
661 FT_GetFilePath_From_Mac_ATS_Name.
662 * builds/mac/ftmac.c: Ditto.
663
6642007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
665
Werner Lembergdcbb7082007-02-08 08:54:09 +0000666 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000667 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
668 for passing to FT_New_Face_From_FSSpec.
669
6702007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
671
Werner Lembergdcbb7082007-02-08 08:54:09 +0000672 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000673 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000674
675 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
676 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000677 * builds/mac/ftmac.c (OS_INLINE): Ditto.
678
Werner Lemberg313d7772007-02-01 08:10:45 +00006792007-02-01 Werner Lemberg <wl@gnu.org>
680
681 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
682 Explain why applications shouldn't use it. Found by Alexei.
683
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006842007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000685
686 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
687 message.
688
689 * src/gxvalid/gxvmort1.c
690 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
691 message.
692
Werner Lemberg53935932007-01-31 08:53:02 +00006932007-01-31 Werner Lemberg <wl@gnu.org>
694
695
696 * Version 2.3.1 released.
697 =========================
698
699
700 Tag sources with `VER-2-3-1-FINAL'.
701
702 * builds/win32/visualc/freetype.dsp,
703 builds/win32/visualc/freetype.vcproj: s/230/231/.
704 * builds/win32/visualc/index.html: s/221/231/.
705
706 * vms_make.com: Add `ftgasp'.
707
David Turnera7ee6082007-01-30 10:33:53 +00007082007-01-30 David Turner <david@freetype.org>
709
Werner Lemberg53935932007-01-31 08:53:02 +0000710 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000711
Werner Lemberg53935932007-01-31 08:53:02 +0000712 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000713
Werner Lemberg25d592a2007-03-09 07:59:35 +0000714 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000715 s/2.3.0/2.3.1/.
716
717 * builds/unix/configure.raw (version_info): Set to 9:12:3.
718
719
720 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
721 (af_loader_load_g): Disable the warper (i.e., the light hinting
722 improvements) to make a 2.3.1 bugfix release before introducing a
723 new feature. This should give us more time to tune and improve the
724 warper for the next release.
725
726 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000727
David Turnerd91eebd2007-01-26 15:05:41 +00007282007-01-25 David Turner <david@freetype.org>
729
Werner Lembergbf241762007-01-26 16:08:49 +0000730 For light auto-hinting, improve glyph advance widths and resurrect
731 normal/full hinting to its normal quality.
732
733 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
734 and `xmax_delta'.
735 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
736 and `xmax_delta'.
737
738 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
739 preprocessor conditional with if-clause, handling both light and
740 normal mode.
741
742 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
743 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000744
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00007452007-01-25 Werner Lemberg <wl@gnu.org>
746
747 * docs/release: Updated -- Savannah uses a new uploading scheme.
748
David Turnera42567b2007-01-25 12:23:37 +00007492007-01-25 David Turner <david@freetype.org>
750
Werner Lembergd7855662007-01-25 13:53:56 +0000751 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000752
Werner Lembergd7855662007-01-25 13:53:56 +0000753 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
754 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
755 functions.
David Turnera42567b2007-01-25 12:23:37 +0000756
Werner Lembergd7855662007-01-25 13:53:56 +0000757 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000758
Werner Lembergb1be9e82007-01-25 11:50:00 +00007592007-01-25 Werner Lemberg <wl@gnu.org>
760
761 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000762 correctly in a sanity check. Since this function is only used to
763 load local and global functions, any charstring that called the last
764 local/global function would fail otherwise. This fixes Savannah bug
765 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000766
767 * docs/CHANGES: Document it.
768
David Turnerb6de8d12007-01-23 15:51:50 +00007692007-01-23 David Turner <david@freetype.org>
770
Werner Lembergb1be9e82007-01-25 11:50:00 +0000771 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
772 prevented compilation when disabling both the unpatented and the
773 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000774
Werner Lembergb1be9e82007-01-25 11:50:00 +0000775
776 Fix and enable the warper to improve `light' hinting mode. This is
777 not necessarily a final version, but it seems to work well.
778
779 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
780 Disable code.
781 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
782 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
783
784 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
785 (af_warper_compute_line_best): Fix array size of `scores'.
786 (af_warper_compute): Better handling of border cases.
787 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
788 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000789
Werner Lemberg011d1112007-01-21 09:36:00 +00007902007-01-21 Werner Lemberg <wl@gnu.org>
791
Werner Lemberg42b63b22007-01-21 21:01:33 +0000792 * ChangeLog: Split off older entries into...
793 * ChangeLog.22: This new file.
794
7952007-01-21 Werner Lemberg <wl@gnu.org>
796
Werner Lemberg555258f2007-01-21 09:46:37 +0000797 * docs/CHANGES: Document SHZ fix.
798
7992007-01-21 George Williams <gww@silcom.com>
800
801 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
802 points.
803
8042007-01-21 Werner Lemberg <wl@gnu.org>
805
Werner Lemberg011d1112007-01-21 09:36:00 +0000806 * src/sfnt/ttmtx.c (tt_face_get_metrics)
807 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
808
Werner Lemberg87a5a432007-01-17 12:44:39 +00008092007-01-17 Werner Lemberg <wl@gnu.org>
810
Werner Lembergb8003292007-01-17 12:56:25 +0000811
812 * Version 2.3.0 released.
813 =========================
814
815
816 Tag sources with `VER-2-3-0-FINAL'.
817
8182007-01-17 Werner Lemberg <wl@gnu.org>
819
Werner Lemberg87a5a432007-01-17 12:44:39 +0000820 * docs/release: Updated.
821
David Turner22122722007-01-16 20:06:44 +00008222007-01-16 David Turner <david@freetype.org>
823
Werner Lemberg87a5a432007-01-17 12:44:39 +0000824 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
825 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
826 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
827 warnings.
David Turner22122722007-01-16 20:06:44 +0000828
Werner Lemberg267e1d72007-01-15 07:48:09 +00008292007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
830
831 * builds/amiga/makefile, builds/amiga/makefile.os4,
832 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
833
834 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
835
Werner Lemberg8c4120d2007-01-15 06:42:40 +00008362007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
837
838 Fix various compiler warnings.
839
840 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
841 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
842 s/index/strike_index/.
843 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
844
845 * src/gxvalid/gxvmorx5.c
846 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
847
848 * src/truetype/ttinterp.c (Compute_Point_Displacement),
849 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
850 uninitialized variables.
851
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008522007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
853
854 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
855
Werner Lemberg281c1482007-01-13 22:50:51 +00008562007-01-13 Werner Lemberg <wl@gnu.org>
857
858 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
859 versions up to 0x3FF without complaining.
860
Werner Lembergac250b22007-01-13 14:01:36 +00008612007-01-13 Derek Clegg <dclegg@apple.com>
862
863 Add FT_Get_PS_Font_Info interface to CFF driver.
864
865 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
866 (CFF_FontRec): Add `font_info' field.
867
868 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
869 (cff_font_done): Free font->font_info if necessary.
870
871 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
872 (cff_service_ps_info): Register cff_ps_get_font_info.
873
Werner Lemberg23df31a2007-01-13 08:45:00 +00008742007-01-13 Werner Lemberg <wl@gnu.org>
875
876 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
877 with C++ compiler.
878
879 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
880 af_glyph_hints_dump_edges): Ditto.
881
882 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
883 `modules.cfg').
884
885 * src/sfnt/ttsbit0.h: Remove.
886
887 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
888
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008892007-01-12 David Turner <david@freetype.org>
890
891 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
892 bug in the bitmap emboldener if the pitch of the source bitmap is
893 much larger than its width.
894
895 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
896 compilation warning.
897
Werner Lemberg6d96d312007-01-12 10:30:19 +00008982007-01-12 Werner Lemberg <wl@gnu.org>
899
900 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
901 `automake' CVS module from sources.redhat.com.
902
Werner Lemberg17432b52007-01-12 09:28:44 +00009032007-01-11 Werner Lemberg <wl@gnu.org>
904
905 * src/type1/t1load.c (is_space): Removed.
906 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
907 (parse_charstrings): Use IS_PS_TOKEN.
908
909
910 * autogen.sh: Avoid bash specific syntax.
911
David Turner038ace22007-01-11 15:00:59 +00009122007-01-11 David Turner <david@freetype.org>
913
Werner Lemberg17432b52007-01-12 09:28:44 +0000914 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000915
Werner Lemberg17432b52007-01-12 09:28:44 +0000916 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000917
Werner Lemberg17432b52007-01-12 09:28:44 +0000918 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
919 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000920 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000921
Werner Lemberg17432b52007-01-12 09:28:44 +0000922 * autogen.sh: Small fix to get it working on Mac OS X properly:
923 The issue is that GNU libtool is called `glibtool' on this platform,
924 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000925
David Turner2628ea92007-01-10 13:15:56 +00009262007-01-10 David Turner <david@freetype.org>
927
Werner Lemberg17432b52007-01-12 09:28:44 +0000928 * all-sources: Tag all sources with VER-2-3-0-RC1 and
929 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000930
Werner Lemberg17432b52007-01-12 09:28:44 +0000931 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
932 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
933 version number to 2.3.0.
934
935 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
936 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000937
938 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000939 include/freetype/ftlcdfil.h: Update reference documentation with
940 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000941
Werner Lemberg17432b52007-01-12 09:28:44 +0000942 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
943 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000944
Werner Lembergbf02d392007-01-10 07:07:37 +00009452007-01-10 Derek Clegg <dclegg@apple.com>
946
947 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
948 values.
949
David Turnerf48b60e2007-01-08 15:15:32 +00009502007-01-08 David Turner <david@freetype.org>
951
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000952 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000953
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000954 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
955 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000956 corresponding to a given character pixel size.
957
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000958 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
959 `gasp' table, in order to avoid potential problems with later
960 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000961
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000962 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
963 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000964
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000965 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
966 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
967 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
968 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000969
Werner Lemberge6b6f372007-01-07 00:06:47 +00009702007-01-07 Werner Lemberg <wl@gnu.org>
971
Werner Lembergb8004d22007-01-07 09:13:38 +0000972 * src/cid/cidparse.c (cid_parser_new): Improve error message for
973 Type 11 fonts.
974 Scan for `/sfnts' token.
975
9762007-01-07 Werner Lemberg <wl@gnu.org>
977
978 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000979
Werner Lembergbe5f7972007-01-06 07:51:48 +00009802007-01-06 Werner Lemberg <wl@gnu.org>
981
982 * src/cff/cffload.c (cff_index_init): Remove unused variable.
983 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
984
David Turnera8cf42b2007-01-04 16:46:46 +00009852007-01-04 David Turner <david@freetype.org>
986
Werner Lembergf6294392007-01-06 07:47:45 +0000987 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
988 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000989
Werner Lembergf6294392007-01-06 07:47:45 +0000990
991 Do not allocate interpreter-specific tables in memory if we are not
992 going to load glyphs with the bytecode interpreter anyway.
993
994 * src/truetype/ttgload.c (tt_loader_init): Load execution context
995 only if glyph is hinted.
996 Updated.
997 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
998 and `cvs_ready'.
999 Add `tt_size_ready_bytecode' declaration.
1000 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1001 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1002 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1003 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1004 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001005
David Turner91a34022007-01-05 14:47:08 +00001006
Werner Lembergf6294392007-01-06 07:47:45 +00001007 Don't extract the metrics table from the SFNT font file. Instead,
1008 reparse it on each glyph load. The runtime difference is not
1009 noticeable, and it can save a lot of heap memory when memory-mapped
1010 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001011
Werner Lembergf6294392007-01-06 07:47:45 +00001012 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1013 `horz_metrics_offset' and `vert_metrics_ofset'.
1014 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1015 Updated.
1016
1017
1018 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1019
1020
1021 Do not load the CFF index offsets into memory, since this wastes a
1022 *lot* of heap memory with large Asian CFF fonts. There is no
1023 significant performance loss.
1024
1025 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1026 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1027 `data_size'.
1028 (CFF_CharsetRec): Add field `num_glyphs'.
1029
1030 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1031 cff_charset_cid_to_gindex): New functions.
1032 (cff_new_index): Renamed to...
1033 (cff_index_init): This. Update all callers.
1034 Updated -- some code has been moved to `cff_index_load_offsets'.
1035 (cff_done_index): Renamed to...
1036 (cff_index_done): This. Update all callers.
1037 (cff_index_get_pointers, cff_index_access_element): Updated to use
1038 stream offsets.
1039 (cff_charset_compute_cids): Set `num_glyphs' field.
1040 (cff_encoding_load): Updated.
1041
1042 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001043
10442007-01-04 David Turner <david@freetype.org>
1045
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001046 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1047 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001048
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001049 * README.CVS: Add common problem description and solution
1050 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001051
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001052 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001053
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001054 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001055
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001056 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001057
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001058 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1059 (TWorker): This.
1060 Remove `count_table' and `memory'.
1061 Make `grays' a pointer.
1062 (TRaster): New structure.
1063 (count_table): New static array.
1064 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1065 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1066 ft_black_set_mode, ft_black_render): Updated.
1067 (ft_black_init): Don't initialize `count_table'.
1068 (ft_black_reset): Use the render pool. This saves about 6KB of
1069 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001070
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001071 * src/smooth/ftgrays.c (TRaster): Replaced with...
1072 (TWorker): This.
1073 Remove `memory'.
1074 (TRaster): New structure.
1075
1076 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1077 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1078 gray_render_span, gray_raster_render): Updated.
1079 (gray_raster_reset): Use the render pool. This saves about 6KB of
1080 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001081
David Turner8a6c44e2007-01-04 17:03:11 +00001082 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1083 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001084 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1085 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1086 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001087
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001088 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1089 Remove a typo that results in no hinting and a memory leak with some
1090 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001091
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001092 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001093 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001094 CFF_Faces in it. We need to close all faces before destroying the
1095 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001096
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010972007-01-02 Werner Lemberg <wl@gnu.org>
1098
1099 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1100 Remove compiler warning.
1101
David Turner9207e002007-01-02 16:58:13 +000011022007-01-02 David Turner <david@freetype.org>
1103
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001104 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001105
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011062006-12-31 Masatake YAMATO <jet@gyve.org>
1107
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001108 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1109 function.
1110 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001111 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001112 `gxv_kern_subtable_fmt0_pairs_validate'.
1113
David Turner115b4422006-12-22 11:37:05 +000011142006-12-22 David Turner <david@freetype.org>
1115
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001116 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1117 warnings.
David Turner115b4422006-12-22 11:37:05 +00001118
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001119 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1120 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001121
Werner Lemberg4755bf72006-12-16 08:58:44 +000011222006-12-16 Anders Kaseorg <anders@kaseorg.com>
1123
1124 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1125 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1126
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000011272006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1128
Werner Lemberg9b774e22007-01-16 06:11:27 +00001129 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001130 sync with the modification by Jens Claudius on 2006-08-22; cf.
1131 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 +00001132
11332006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1134
1135 * src/base/ftmac.c: Specialized for Mac OS X only.
1136 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1137 * builds/unix/configure.raw: Ditto. When explicit switches for
1138 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1139 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1140
11412006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1142
1143 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1144 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1145 instead of src/base/ftmac.c
1146 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1147 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1148 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1149 that cannot be built at present.
1150
11512006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1152
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001153 * src/base/ftobjs.c: Improvement of resource fork handler for
1154 POSIX, cf.
1155 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001156 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1157 format or .dfont, to simulate the face index number counted by ftmac.c.
1158 (IsMacResource): Return the number of scalable faces correctly.
1159
Werner Lembergec5b4502006-12-10 07:51:38 +000011602006-12-10 Werner Lemberg <wl@gnu.org>
1161
1162 * builds/toplevel.mk (version): Protect against `distclean' target.
1163
Werner Lembergb26b3142006-12-09 20:01:43 +000011642006-12-09 Werner Lemberg <wl@gnu.org>
1165
1166 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1167 or `type'.
1168
1169 * builds/freetype.mk (version): Extracted from freetype.h, using
1170 GNU make's built-in string functions.
1171 (refdoc): Use $(version) instead of static version number.
1172
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000011732006-12-08 Werner Lemberg <wl@gnu.org>
1174
1175 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1176
Werner Lemberg15c29502006-12-09 07:29:54 +000011772006-12-08 Vladimir Volovich <vvv@vsu.ru>
1178
1179 * src/tools/apinames (State): Remove final comma in structure -- xlc
1180 v5 under AIX 4.3 doesn't like this.
1181
David Turnerdbf3b432006-12-07 21:18:09 +000011822006-12-07 David Turner <david@freetype.org>
1183
Werner Lemberg256a3512006-12-08 06:49:33 +00001184 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1185 to the spacing of auto-fitted glyphs. This only impacts rare
1186 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001187
Werner Lemberg11171312006-12-03 09:43:40 +000011882006-12-03 Werner Lemberg <wl@gnu.org>
1189
1190 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1191
Werner Lemberg960ba592006-12-01 08:20:47 +000011922006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001193
Werner Lemberg960ba592006-12-01 08:20:47 +00001194 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1195 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1196 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001197
David Turner80658e52006-11-28 08:09:20 +00001198
Werner Lemberg960ba592006-12-01 08:20:47 +00001199 * include/freetype/ftxf86.h: Fix and extend comment so that it
1200 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001201
Werner Lemberg960ba592006-12-01 08:20:47 +00001202 * include/freetype/ftchapters.h: Add `font_format' section.
1203
1204
1205 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1206 to TOC in index page.
1207
12082006-11-28 David Turner <david@freetype.org>
1209
1210 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1211 trying to render into a zero-width/height bitmap, not an error code.
1212
1213 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1214
1215 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1216 ones instead.
1217
1218 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1219 variable.
David Turner80658e52006-11-28 08:09:20 +00001220
Werner Lemberg8636c292006-11-26 22:28:13 +000012212006-11-26 Pierre Hanser <hanser@club-internet.fr>
1222
1223 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1224
Werner Lemberg960ba592006-12-01 08:20:47 +000012252006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001226
Werner Lemberg960ba592006-12-01 08:20:47 +00001227 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1228 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1229 Add stubs to link the `ftgrid' test program when debugging is
1230 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001231
Werner Lemberg960ba592006-12-01 08:20:47 +000012322006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001233
1234 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001235 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1236
1237 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1238 Emit more sensible information.
1239
1240 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1241
1242 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1243 rounding of blue values.
1244 (af_latin_hints_compute_segments): Hint segment heights.
1245 (af_latin_hints_link_segments): Reduce `len_score' value.
1246 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1247 value and use `height' member for comparisons.
1248 (af_latin_hint_edges): Extend logging message.
1249 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001250
Werner Lemberg91959bf2006-11-22 10:36:55 +000012512006-11-22 Werner Lemberg <wl@gnu.org>
1252
1253 Fix Savannah bug #15553.
1254
1255 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1256 program after a change from mono to grayscaling (and vice versa).
1257 Use correct constant for comparison to get `exec->grayscale'.
1258
Werner Lemberg913a3652006-11-19 09:19:17 +000012592006-11-18 Werner Lemberg <wl@gnu.org>
1260
1261 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001262 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001263 This patch fixes Savannah bug #18301.
1264
1265 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1266 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1267 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1268 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1269 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1270 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1271 (FNT_Load_Glyph): Check validity of `glyph_index'.
1272
David Turner7bab6ae2006-11-13 11:25:06 +000012732006-11-13 David Turner <david@freetype.org>
1274
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001275 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1276 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001277
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001278 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1279 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1280 when building the library to change the default LCD filter to be
1281 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001282
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001283 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001284
David Turner8765c712006-11-10 16:49:42 +000012852006-11-10 David Turner <david@freetype.org>
1286
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001287 * src/smooth/ftsmooth.c: API change for the LCD
1288 filter. The FT_LcdFilter value is an enumeration describing which
1289 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1290 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1291 algorithm which produces strong color fringes for everything
1292 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001293
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001294 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1295 second parameter to an enum type.
1296
1297 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1298 (_ft_lcd_filter): Rename to...
1299 (_ft_lcd_filter_fir): This.
1300 Update parameters.
1301 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1302 (FT_Library_Set_LcdFilter): Update parameters.
1303 Handle new filter modes.
1304
1305 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1306 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1307 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1308 callback and update other fields.
1309
1310 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1311 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1312 Other minor improvements.
1313
1314 * src/autofit/aflatin.c: Various tiny improvements that drastically
1315 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1316 (af_latin_hints_compute_edges): Fix typo.
1317 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001318
David Turner4e9cc3c2006-11-09 16:31:52 +000013192006-11-09 David Turner <david@freetype.org>
1320
Werner Lemberg49c77a82006-11-09 21:51:57 +00001321 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1322 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001323
Werner Lemberg5e430892006-11-07 09:35:03 +000013242006-11-07 Zhe Su <james.su@gmail.com>
1325
1326 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1327 also.
1328
Werner Lemberg111b5ae2006-11-03 09:40:12 +000013292006-11-03 Werner Lemberg <wl@gnu.org>
1330
1331 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1332
David Turner40604742006-11-02 16:37:35 +000013332006-11-02 David Turner <david@freetype.org>
1334
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001335 Add a few tweaks to better handle serif fonts.
1336 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001337
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001338 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1339 segments that are less than 1.5 pixels high. This gets rid of
1340 *many* corner cases with serifs.
1341 (af_latin_align_linked_edge): Add logging message.
1342 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1343 Add logging messages.
1344 Handle AF_EDGE_FLAG flag specially.
1345
1346 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1347 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1348
1349 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1350 Update external declarations.
1351 (af_corner_orientation, af_corner_is_flat): Replaced by...
1352
1353 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1354 ft_corner_is_flat): These declarations.
1355
1356 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1357 Comment out. Replaced by...
1358
1359 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1360 These functions. Update all callers.
1361 (FT_Add64) [!FT_LONG64]: Simplify.
1362
1363 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1364 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1365 production of garbage by missing lots of segments.
1366
1367 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1368
1369 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1370 [AF_DEBUG]: Set _af_debug_hints.
1371
1372
1373 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1374 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1375 and ft_corner_orientation.
1376
1377
1378 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001379
Werner Lemberge88c5262006-10-24 05:46:26 +000013802006-10-24 Werner Lemberg <wl@gnu.org>
1381
1382 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1383
1384 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1385 as argument.
1386
David Turnera1861392006-10-23 16:00:59 +000013872006-10-23 Zhe Su <zsu@novell.com>
1388
Werner Lemberg715e96e2006-10-24 05:28:45 +00001389 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1390 better deal with broken Asian fonts with strange glyphs, having
1391 self-intersections and other peculiarities. The used algorithm is
1392 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001393
David Turnere140f142006-10-23 08:56:57 +000013942006-10-23 David Turner <david@freetype.org>
1395
Werner Lemberg715e96e2006-10-24 05:28:45 +00001396 Speed up the CFF font loader. With some large CFF fonts,
1397 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001398
Werner Lemberg715e96e2006-10-24 05:28:45 +00001399 * src/cff/cffload.c (cff_get_offset): Removed.
1400 (cff_new_index): Inline functionality of `cff_get_offset'.
1401 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1402 (cff_charset_done): Call `cff_charset_free_cids'.
1403 (cff_charset_load): Call `cff_charset_compute_cids'.
1404 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1405
1406 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1407 with FT_NEXT_XXX.
1408
1409
1410 Speed up the Postscript hinter, with more than 100% speed increase
1411 on my machine.
1412
1413 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1414 psh_corner_orientation): New functions.
1415 (psh_glyph_compute_inflections): Merge loops for efficiency.
1416 Use `psh_corner_orientation'.
1417 (psh_glyph_init): Use `psh_corner_is_flat'.
1418 (psh_hint_table_find_strong_point): Renamed to...
1419 (psh_hint_table_find_strong_points): This.
1420 Rewrite, adding argument to handle all points at once.
1421 Update all callers.
1422 (PSH_MAX_STRONG_INTERNAL): New macro.
1423 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001424
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000014252006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1426
1427 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001428 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001429
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014302006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1431
1432 * docs/INSTALL.CROSS: New document file for cross-building.
1433
1434 * builds/unix/configure.raw: Preliminary cross-building support.
1435 Find native C compiler and pass it by CC_BUILD, and
1436 find suffix for native executable and pass it by EXEEXT_BUILD.
1437 Also suffix for target executable is passed by EXEEXT.
1438
Werner Lembergb9e6d692006-10-15 08:58:40 +00001439 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1440 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001441 CC_BUILD and EXEEXT_BUILD.
1442
Werner Lembergb9e6d692006-10-15 08:58:40 +00001443 * builds/exports.mk (APINAMES_EXE): Change the extension for
1444 apinames from the suffix for target (E) to that for building host
1445 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001446
Werner Lemberg82a07e92006-10-12 06:20:44 +000014472006-10-12 Werner Lemberg <wl@gnu.org>
1448
1449 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1450 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1451 which reference those files.
1452
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014532006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1454
Werner Lembergb9e6d692006-10-15 08:58:40 +00001455 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1456 embedded in freetype2.pc and freetype-config. Use it to record
1457 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001458
1459 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1460
1461 * builds/unix/freetype-config.in: Ditto.
1462
Werner Lemberg28e17d92006-10-11 17:27:47 +000014632006-10-11 Werner Lemberg <wl@gnu.org>
1464
1465 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1466 development.
1467
Jens Claudius336d2292006-10-03 08:53:37 +000014682006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1469
1470 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1471 argument to ft_setjmp.
1472
1473 * include/freetype/internal/ftvalid.h: Add comment that
1474 ft_validator_run must not be used.
1475
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014762006-10-01 Werner Lemberg <wl@gnu.org>
1477
1478 * src/base/ftbase.c: Undo change from 2006-09-30.
1479
1480 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1481
14822006-09-30 David Turner <david@freetype.org>
1483
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001484 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1485 s/unpatented_hinting/ignore_unpatented_hinter/.
1486 Update all callers.
1487
1488 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1489 auto-hinting shall be used or not.
1490
1491 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001492
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014932006-09-30 Werner Lemberg <wl@gnu.org>
1494
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001495 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1496 in use).
1497
1498 * src/base/ftbase.c: Include `ftlcdfil.c'.
1499
Werner Lemberg9b15ea32006-09-29 18:22:11 +000015002006-09-29 Werner Lemberg <wl@gnu.org>
1501
1502 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1503 overlapping segments. Bug reported by Stefan Koch.
1504
David Turnerad830712006-09-27 16:20:59 +000015052006-09-28 David Turner <david@freetype.org>
1506
Werner Lemberg2c002e12006-09-29 21:31:53 +00001507 Fix a bug in the automatic unpatented hinting support which prevents
1508 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001509
Werner Lemberg2c002e12006-09-29 21:31:53 +00001510 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1511 s/force_autohint/unpatented_hinting/. Update all callers.
1512
1513 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1514
1515 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001516
David Turner8a317cf2006-09-27 07:52:48 +000015172006-09-27 David Turner <david@freetype.org>
1518
Werner Lemberg2c002e12006-09-29 21:31:53 +00001519 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001520
David Turner8a317cf2006-09-27 07:52:48 +00001521
David Turnere140f142006-10-23 08:56:57 +00001522 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001523 In a default build, the function `FT_Library_SetLcdFilter' returns
1524 `FT_Err_Unimplemented_Feature'; you need to #define
1525 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1526 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001527
Werner Lemberg2c002e12006-09-29 21:31:53 +00001528 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001529
Werner Lemberg2c002e12006-09-29 21:31:53 +00001530 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1531 typedef.
1532 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1533 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001534
Werner Lemberg2c002e12006-09-29 21:31:53 +00001535 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1536 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001537
Werner Lemberg2c002e12006-09-29 21:31:53 +00001538 Handle subpixel rendering.
1539 Simplify function.
1540 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1541 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1542
1543 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1544 pointing to <freetype/ftlcdfil.h>.
1545
1546 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1547 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1548
1549 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001550
Werner Lemberge20df4a2006-09-27 06:29:21 +000015512006-09-26 David Bustin
1552
1553 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1554 correctly. Reported as Savannah bug #17843.
1555
David Turner6f8c6222006-09-26 15:42:44 +000015562006-09-26 David Turner <david@freetype.org>
1557
Werner Lemberg110246c2006-09-26 21:55:44 +00001558 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1559 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1560 horizontal and vertical hinting for the purpose of debugging the
1561 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001562
Werner Lemberg110246c2006-09-26 21:55:44 +00001563 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1564 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001565
Werner Lemberg110246c2006-09-26 21:55:44 +00001566 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1567
1568 * include/freetype/config/ftoption.h, devel/ftoption.h
1569 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1570 we want to compile LCD-optimized rendering code (à la ClearType) or
1571 not. The macro *must* be disabled in default builds of the library
1572 for patent reasons.
1573
1574 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1575 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1576 isn't defined at compile time. This only changes the content of the
1577 rendered glyph to match the one of normal gray-level rendering,
1578 hence clients should not need to be modified.
1579
1580 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001581
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015822006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1583
1584 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1585 LWFN fails and both are available.
1586
David Turnerf3050052006-09-11 12:00:32 +000015872006-09-11 David Turner <david@freetype.org>
1588
Werner Lembergf9644552006-09-12 13:48:10 +00001589 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1590 report their English names through an Apple Roman
1591 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001592
Werner Lembergf9644552006-09-12 13:48:10 +00001593 If the font uses another name entry with language_id == English, it
1594 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001595
Werner Lembergf9644552006-09-12 13:48:10 +00001596 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1597 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001598
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015992006-09-05 Werner Lemberg <wl@gnu.org>
1600
1601 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001602 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001603 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1604 `HAN NOM B.ttf').
1605
1606 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1607
David Turner772e55d2006-09-05 09:45:15 +000016082006-09-05 David Turner <david@freetype.org>
1609
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001610 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001611
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001612 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1613 (TRaster): Remove `count_ex' and `count_ey'.
1614 (gray_find_cell): Remove 2nd and 3rd argument.
1615 (gray_alloc_cell): Merged with `gray_find_cell'.
1616 (gray_record_cell): Simplify.
1617 (gray_set_cell): Rewrite.
1618 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1619 (gray_render_span): Don't use FT_MEM_SET for small values.
1620 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1621 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1622 bitmap scanline.
1623 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001624
David Turneraa557a92006-09-04 16:42:44 +000016252006-09-04 David Turner <david@freetype.org>
1626
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001627 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1628 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001629
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016302006-09-03 Werner Lemberg <wl@gnu.org>
1631
1632 * devel/ftoption.h: Synchronize with
1633 include/freetype/config/ftoption.h.
1634
1635 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1636 variable declaration.
1637 (gray_convert_glyph): Fix compiler warnings.
1638
David Turner6d79f212006-09-01 14:09:35 +000016392006-09-01 David Turner <david@freetype.org>
1640
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001641 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1642 to recognize a few fonts that require the automatic unpatented
1643 loader.
David Turnerbd502952006-09-01 19:05:24 +00001644
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001645 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1646 rasterizer. The speed improvement is between 15% and 25%, depending
1647 on the font data.
1648
1649 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1650 (TCell): Redefine.
1651 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1652 (gray_init_cells): Updated.
1653 (gray_find_cell, gray_alloc_cell): New functions.
1654 (gray_record_cell): Rewritten to use `gray_find_cell' and
1655 `gray_alloc_cell'.
1656 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1657 QSORT_THRESHOLD):
1658 Removed.
1659 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1660 gray_dump_cells): Removed.
1661 (gray_sweep): Rewritten.
1662 (gray_convert_glyph): Rewrite code which used one of the sorting
1663 functions.
1664 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001665
Werner Lembergd898aed2006-08-29 09:50:34 +000016662006-08-29 Dr. Werner Fink <werner@suse.de>
1667
1668 * configure: Make it possible to handle configure options which
1669 have strings containing spaces.
1670
16712006-08-27 David Turner <david@freetype.org>
1672
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001673 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1674 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1675 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1676
1677 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1678 src/truetype/truetype.c, src/truetype/ttdriver.c,
1679 src/truetype/ttgload.c, src/truetype/ttgload.h,
1680 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1681 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1682 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1683
1684 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1685 member `force_autohint'.
1686
1687 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1688
1689 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1690 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001691
Jens Claudiusa787f452006-08-27 11:26:18 +000016922006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1693
1694 Fix miscellaneous compiler warnings.
1695
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001696 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1697 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001698
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001699 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1700 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1701 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001702
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001703 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1704 volatileness of argument to ft_longjmp. Spotted by Werner
1705 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001706
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001707 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1708 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001709
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001710 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1711 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001712
Werner Lembergc4c35b72006-08-27 08:03:46 +000017132006-08-27 Werner Lemberg <wl@gnu.org>
1714
1715 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1716 Reported by Jens.
1717
Jens Claudius088e44e2006-08-22 14:24:30 +000017182006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001719
Jens Claudius088e44e2006-08-22 14:24:30 +00001720 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001721 about addresses of volatile objects passed as function arguments as
1722 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001723
Werner Lembergc4c35b72006-08-27 08:03:46 +00001724 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1725 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001726
1727 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1728 argument `table' a pointer to a volatile object.
1729
1730 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1731 argument `table' a pointer to a volatile object.
1732
Jens Claudius2652bd52006-08-18 17:20:37 +000017332006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1734
1735 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1736 variable `_sfnt' as volatile since it must keep its value across
1737 a call to ft_setjmp.
1738 (gxv_validate): Same for local variables `memory' and `valid'.
1739 (classic_kern_validate): Same for local variables `memory',
1740 `ckern', and `valid'.
1741
1742 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1743 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1744 `jstf', and 'valid'.
1745
1746 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1747 local variable `cmap'.
1748
David Turner9fbfc6a2006-08-16 09:11:31 +000017492006-08-16 David Turner <david@freetype.org>
1750
Werner Lemberg12342992006-08-19 11:18:09 +00001751 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1752 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001753
Werner Lemberg12342992006-08-19 11:18:09 +00001754 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1755 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001756
David Turner33f5f242006-08-16 16:50:55 +00001757
Werner Lemberg12342992006-08-19 11:18:09 +00001758 Improvements to native TrueType hinting. This is a first try,
1759 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1760
1761 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1762 `extra_points2'.
1763
1764 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1765 `orus'.
1766
1767 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1768 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1769 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1770 handle `extra_points2'.
1771
1772 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1773 Remove compiler warning.
1774 (cur_to_arg): Remove macro.
1775 (TT_Hint_Glyph): Updated.
1776 (TT_Process_Simple_Glyph): Handle `orus'.
1777
1778 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1779 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1780 (LOC_Ins_IUP): Renamed to...
1781 (IUP_WorkerRec): This.
1782 Add `orus' member.
1783 (Shift): Renamed to...
1784 (_iup_worker_shift): This.
1785 Updated.
1786 (Interp): Renamed to...
1787 (_iup_worker_interpolate): This.
1788 Updated to handle `orus'.
1789 (Ins_IUP): Updated.
1790
1791 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1792 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001793
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017942006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1795
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001796 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001797 build ftvalid in ft2demos. This has been inadvertedly changed
1798 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001799
18002006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1801
Werner Lemberg12342992006-08-19 11:18:09 +00001802 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1803 Jens:
1804 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001805
Werner Lemberg12342992006-08-19 11:18:09 +00001806 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1807 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001808
1809 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1810
Jens Claudius9950adc2006-08-13 12:14:36 +000018112006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1812
Werner Lemberg12342992006-08-19 11:18:09 +00001813 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1814 T1_TOKEN_TYPE_KEY.
1815 (T1_FieldRec): Add `dict'.
1816 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1817 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1818 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001819
Werner Lemberg12342992006-08-19 11:18:09 +00001820 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1821 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001822
1823 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1824
1825 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001826 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1827 not T1_TOKEN_TYPE_ANY.
1828 (ps_parser_load_field): Make sure a token that should be a string or
1829 name is really a string or name.
1830 Avoid memory leak if a keyword has been already encountered and its
1831 value is overwritten.
1832 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1833 T1_FIELD_XXX.
1834 (parse_dict): Ignore keywords that occur in the wrong dictionary
1835 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001836
Werner Lemberg12342992006-08-19 11:18:09 +00001837 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1838 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001839
Werner Lemberg12342992006-08-19 11:18:09 +00001840 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1841 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001842
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000018432006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1844
1845 Move creation of field `buildchar' of T1_DecoderRec out of
1846 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1847 of it.
1848
1849 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1850 and `T1_Compute_Max_Advance'.
1851
1852 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1853 Remove field `face', add `len_buildchar'.
1854
1855 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1856 field `buildchar'.
1857
1858 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1859 finisher for T1_Decoder.
1860 (cid_slot_load_glyph): Do not ignore failure when initializing the
1861 T1_Decoder.
1862
1863 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1864 Updated.
1865 (t1_decoder_init): Remove initialization of fields `buildchar' and
1866 `len_buildchar'.
1867 (t1_decoder_done): Remove deallocation of field `buildchar'.
1868
1869 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1870 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1871 T1_Decoder.
1872 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1873 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1874 case of error.
1875
1876 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1877 `buildchar' of T1_FaceRec.
1878
1879 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1880 `buildchar' of T1_FaceRec.
1881
Werner Lemberg1a380e02006-07-14 18:28:08 +000018822006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1883
1884 * freetype2/include/freetype/internal/psaux.h: New macros
1885 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1886 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1887 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1888 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1889 (T1_DecoderRec): New fields `buildchar' and `face'.
1890 (IS_PS_TOKEN): New macro.
1891
1892 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1893 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1894
1895 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1896 `default_design_vector' and `num_default_design_vector'.
1897
1898 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1899 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1900 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1901
1902 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1903 `token' argument to be NULL if we want only to count the number of
1904 tokens.
1905 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1906 want to skip the array.
1907 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1908 want to skip the array.
1909
1910 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1911 support for (partially commented out) othersubrs 19-25, 27, and 28.
1912 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1913 (t1_decoder_done): Release new field `buildchar'.
1914
1915 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1916 functions.
1917 (t1_keywords): Register them.
1918 (t1_allocate_blend): Updated.
1919 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1920 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1921 (parse_dict): Remove `keyword_flags' argument.
1922 Use new macro IS_PS_TOKEN.
1923 Changed function so that later PostScript definitions override
1924 earlier ones.
1925 (t1_init_loader): Initialize new field `keywords_encountered'.
1926 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1927 `len_buildchar'.
1928 Remove `keywords_flags'.
1929
1930 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1931 `keywords_encountered'.
1932 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1933
1934 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1935 New entries for parsing /NDV, /CDV, and /DesignVector.
1936
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000019372006-07-07 Werner Lemberg <wl@gnu.org>
1938
1939 Add many checks to protect against malformed PCF files.
1940
1941 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1942 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1943
1944 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1945 data and check that tables don't overlap (using a simple
1946 bubblesort).
1947 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1948 New macros which give the size of data structures in the data
1949 stream.
1950 (pcf_get_properties): Use rough estimates to get array size limits.
1951 Assign `face->nprops' and `face->properties' earlier so that a call
1952 to PCF_Face_Done can do the clean-up in case of error.
1953 Protect against invalid string offsets.
1954 (pcf_get_metrics): Clean up code.
1955 Adjust tracing message levels.
1956 Use rough estimate to get array size limit.
1957 (pcf_get_bitmaps): Clean up code.
1958 Adjust tracing message levels.
1959 Use rough estimates to get offset limits.
1960 (pcf_get_encodings): Adjust tracing message level.
1961 (pcf_get_accel): Clean up code.
1962
Werner Lemberg8eb05252006-06-27 06:20:01 +000019632006-06-26 Werner Lemberg <wl@gnu.org>
1964
1965 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1966 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1967
Werner Lemberg24703f82006-06-26 19:12:51 +000019682006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1969
1970 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1971 (t1_decoder_parse_charstrings): Operator with
1972 opcode 15 pops its two arguments.
1973 Handle the case where the pops of an othersubr may be part of a
1974 subroutine.
1975 Handle unknown othersubrs gracefully: count their operands and let
1976 the following pop operators push the operands as the results onto
1977 the Type1 stack.
1978 Improve handling of setcurrentpoint opcode.
1979
Werner Lembergc011f4c2006-06-26 09:40:00 +000019802006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1981
1982 The Type 1 parser now skips over top-level procedures as required
1983 for a `Simplified Parser'. This makes the parser more robust as it
1984 doesn't poke around in PostScript code. Additionally, it makes the
1985 FontDirectory hackery in src/type1/t1load.c unnecessary.
1986
1987 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1988 (skip_literal_string): Add FT_Error as return value.
1989 Handle escapes better.
1990 (skip_string): Add FT_Error as return value.
1991 Don't set `parser->error' but return error code directly.
1992 (skip_procedure): New function.
1993 (ps_parser_skip_PS_token): Handle procedures.
1994 Update code.
1995 (ps_parser_to_token): Update code.
1996 (ps_parser_load_field_table): Handle bbox entries also.
1997
1998 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1999 Add commented-out code for synthetic fonts.
2000
Werner Lemberga2da05c2006-06-25 06:27:27 +000020012006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2002
2003 Fix two hinting bugs as reported in
2004 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2005
2006 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2007 `first_point' member.
2008
2009 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2010 `first_point'.
2011 (TT_Process_Composite_Glyph): Always untouch points.
2012
2013 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2014 `first_point' and `last_point' in case of composite glyphs.
2015 (Ins_IUP): Fix computation of `end_point'.
2016
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020172006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2018
Werner Lembergef3d2c22006-06-25 06:07:14 +00002019 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2020 Mac. The original patch was written by David Sachitano and Lawrence
2021 Coopet, and modified by Sean McBride for MPW compatibility. Only
2022 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002023
Werner Lembergef3d2c22006-06-25 06:07:14 +00002024 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2025 Mac OS X platforms.
2026 (OS_INLINE): Undefine before definition.
2027 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2028 FontAssociation table in FOND resource.
2029 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2030 and fontSize at each entry of FontAssociation table in FOND
2031 resource.
2032 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2033 ffStylOff of FamilyRecord header of FOND resource, the header,
2034 fontSize, fontID at each entry of FontAssociation table, and
2035 StyleMapping table.
2036 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002037
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000020382006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2039
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002040 Public API of TrueTypeGX, OpenType, and classic kern table validator
2041 should return `FT_Err_Unimplemented_Feature' if validation service
2042 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002043 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002044 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2045
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002046 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2047 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2048 unavailable.
2049 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2050 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002051
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002052 * src/base/ftotval.c (FT_OpenType_Validate): Return
2053 FT_Err_Unimplemented_Feature if OpenType validation service is
2054 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002055
Werner Lembergb10e45a2006-06-08 07:32:56 +000020562006-06-08 Werner Lemberg <wl@gnu.org>
2057
2058 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2059 errors.
2060
David Turner5f1f7502006-06-07 05:11:50 +000020612006-06-07 David Turner <david@freetype.org>
2062
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002063 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2064 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2065 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002066
David Turner457b4a82006-06-06 08:14:14 +000020672006-06-06 David Turner <david@freetype.org>
2068
Werner Lemberg4836f952006-06-06 12:54:08 +00002069 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002070
Werner Lemberg4836f952006-06-06 12:54:08 +00002071 We change `ps_unicodes_init' so that it also takes a
2072 `free_glyph_name' callback to release the glyph names returned by
2073 `get_glyph_name'
2074
2075 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2076 Renamed to ...
2077 (PS_GetGlyphNameFunc): This.
2078 (PS_FreeGlyphNameFunc): New typedef.
2079 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2080
2081 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2082 argument.
2083 (cff_sid_free_glyph_name): New function.
2084 (cff_cmap_unicode_init): Updated.
2085
2086 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2087
2088 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2089 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002090
2091
David Turner09717352006-06-04 14:33:08 +000020922006-06-04 David Turner <david@freetype.org>
2093
Werner Lembergd724f202006-06-04 15:17:41 +00002094 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2095 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002096 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002097
Werner Lembergd724f202006-06-04 15:17:41 +00002098 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2099 of `face->num_glyphs' which missed the last glyph, due to
2100 the offset-by-1 computation, since the PFR format doesn't
2101 guarantee that glyph index 0 corresponds to the `missing
2102 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002103
Werner Lemberg33779662006-05-26 06:30:05 +000021042006-05-25 Werner Lemberg <wl@gnu.org>
2105
2106 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2107 `-no-undefined'. Reported by Christian Biesinger.
2108
Werner Lemberg24773d62006-05-20 08:53:13 +000021092006-05-19 Brian Weed <bw@imaginengine.com>
2110
2111 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2112 have debug information, and debug libraries use `C7 compatible'
2113 debug info.
2114
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021152006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2116
Werner Lemberga6523a62006-05-20 08:47:01 +00002117 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002118 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002119
Werner Lemberga6523a62006-05-20 08:47:01 +00002120 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2121 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002122
2123 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002124 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002125
21262006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2127
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002128 * build/unix/configure.raw: Add a fallback to disable Carbon
2129 dependency, if configured with no options on Mac OS X.
2130
21312006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2132
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002133 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002134 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002135 the second part of Savannah bug #16590.
2136
Werner Lemberg545c4e52006-05-17 22:55:04 +000021372006-05-18 Werner Lemberg <wl@gnu.org>
2138
2139 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2140 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2141
David Turnerdc3ff312006-05-17 12:59:35 +000021422006-05-17 David Turner <david@freetype.org>
2143
Werner Lemberg545c4e52006-05-17 22:55:04 +00002144 This is a major patch used to drastically improve the performance of
2145 loading glyphs. This both speeds up loading the glyph vectors
2146 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002147
Werner Lemberg545c4e52006-05-17 22:55:04 +00002148 We now use inline assembler code with GCC to implement `FT_MulFix',
2149 which is probably the most important function related to the
2150 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002151
Werner Lemberg545c4e52006-05-17 22:55:04 +00002152 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002153
2154
Werner Lemberg545c4e52006-05-17 22:55:04 +00002155 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2156 `cursor' and `limit'.
2157
2158 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2159 New functions.
2160 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2161 [TEST]: Remove.
2162
2163 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2164 code.
2165
2166 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2167 `FT_ZERO'
2168 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2169 (af_glyph_hints_reload: Rewrite recognition of weak points.
2170
2171 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2172 constant values out of the loops.
2173
2174 * src/autofit/aftypes.h: Updated.
2175
2176 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2177
2178 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2179 product to get orientation.
2180
2181 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2182 (FT_Stream_OpenGzip): Use it to handle small files directly in
2183 memory.
2184
2185 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2186 Improve performance.
2187
2188 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2189 `limit'.
2190
2191 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2192 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2193 exceedingly large values of number of contours. Speed up by
2194 reducing the number of loops.
2195
2196 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2197
2198
2199 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2200 used to detect rogue clients from 4 to 16. This is to prevent some
2201 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2202 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002203
Werner Lembergde2d90a2006-05-17 08:54:30 +000022042007-05-17 Werner Lemberg <wl@gnu.org>
2205
2206 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002207 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002208
22092006-05-16 Werner Lemberg <wl@gnu.org>
2210
2211 * docs/PROBLEMS: Updated icl issues.
2212
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002213----------------------------------------------------------------------------
2214
Werner Lemberg42b63b22007-01-21 21:01:33 +00002215Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002216David Turner, Robert Wilhelm, and Werner Lemberg.
2217
2218This file is part of the FreeType project, and may only be used, modified,
2219and distributed under the terms of the FreeType project license,
2220LICENSE.TXT. By continuing to use, modify, or distribute this file you
2221indicate that you have read the license and understand and accept it
2222fully.
2223
2224
2225Local Variables:
2226version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002227coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002228End: