blob: ee6ba168a733cd859ab5eddda34db1f020563400 [file] [log] [blame]
David Turner84c6f882007-06-10 20:51:04 +000012007-06-10 David Turner <david@freetype.org>
2
David Turner5f5e5442007-06-11 00:18:00 +00003 * src/truetype/ttgload.c: slight speed-up to the TrueType glyph loader
4
David Turner84c6f882007-06-10 20:51:04 +00005 * include/freetype/config/ftoption.h: clarify documentation regarding
6 unpatented hinting
7
8 * include/freetype/freetype.h, src/base/ftpatent.c, src/truetype/ttdriver.c,
9 include/freetype/internal/services/svttglyf.h, modules.cfg,:
10 include/freetype/internal/ftserv.h,:
11 Fonts without a cmap must be handled correctly by FreeType (anything
12 Adding the FT_Face_CheckTrueTypePatents API to FT_FREETYPE_H, it is
13 implemented by the optional src/base/ftpatent.c
14
Werner Lemberg33db39e2007-06-08 06:30:29 +0000152007-06-08 Werner Lemberg <wl@gnu.org>
16
David Turner84c6f882007-06-10 20:51:04 +000017 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +000018 Fonts without a cmap must be handled correctly by FreeType (anything
19 else would be a bug).
20
21
22 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
23 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
24
Werner Lemberg88ab6382007-06-07 05:01:56 +0000252007-06-07 Werner Lemberg <wl@gnu.org>
26
27 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
28 tt_sbit_decoder_load_image): Protect against integer overflows.
29
30
31 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
32 for `x_control' and `y_control'.
33
Werner Lemberg2a2dca62007-06-06 04:39:37 +0000342007-06-06 Werner Lemberg <wl@gnu.org>
35
36 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
37
Werner Lemberga8d65492007-06-06 04:47:49 +000038
39 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
40 FreeType error.
41
Werner Lemberg470210b2007-06-06 10:05:49 +000042
43 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
44 `font_count'.
45
46
47 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
48
49
50 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
51 `FT_Error'.
52 Check `fd_index'.
53 (cff_slot_load): Updated.
54 * src/cff/cffgload.h: Updated.
55
Werner Lemberg6c054752007-06-05 05:27:54 +0000562007-06-05 Werner Lemberg <wl@gnu.org>
57
58 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
59 (pfr_glyph_load_simple): Convert assertion into normal FreeType
60 error.
61 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000062 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
63 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000064
65 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
66
Werner Lembergf4bc3f42007-06-05 07:32:15 +000067
Werner Lemberg470210b2007-06-06 10:05:49 +000068 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +000069
Werner Lemberge5c14d92007-06-05 20:50:37 +000070
71 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
72 in case of parsing error.
73 (ps_parser_load_field): Updated.
74
75 * src/type1/t1load.c (parse_font_matrix): Updated.
76
Werner Lembergad18b362007-06-04 07:04:05 +0000772007-06-04 Werner Lemberg <wl@gnu.org>
78
79 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
80
81 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
82
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000832007-06-03 Werner Lemberg <wl@gnu.org>
84
Werner Lemberg99a320b2007-06-03 19:21:26 +000085 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
86 George Williams (with some modifications).
87
882007-06-03 Werner Lemberg <wl@gnu.org>
89
Werner Lemberg3d507fe2007-06-03 16:54:55 +000090 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
91 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
92 face == NULL. Suggested by Graham Asher.
93
Werner Lembergce280a22007-06-03 05:58:30 +0000942007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
95
96 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
97
Werner Lemberg5b591e42007-06-01 22:16:43 +0000982007-06-02 Werner Lemberg <wl@gnu.org>
99
100 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
101 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
102
103 * src/bdf/bdflib.c (bdf_load_font): Use them.
104
105 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
106
Werner Lembergb9933f42007-06-01 21:27:12 +00001072007-06-01 Werner Lemberg <wl@gnu.org>
108
109 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
110 (FTC_CMapCache_Lookup): Remove unused code.
111
Werner Lembergc793d902007-06-01 20:51:11 +00001122007-06-01 Sean McBride <sean@rogue-research.com>
113
114 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
115 unused.
116
Werner Lembergbebc7b12007-06-01 06:32:30 +00001172007-06-01 Werner Lemberg <wl@gnu.org>
118
119 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
120 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000121 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000122
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000123 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
124 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
125
Werner Lembergba03af62007-05-30 13:57:02 +00001262007-05-30 Werner Lemberg <wl@gnu.org>
127
128 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
129 against too small binary data strings.
130
131 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
132
David Turnerf0cd69c2007-05-28 15:42:09 +00001332007-05-28 David Turner <david@freetype.org>
134
Werner Lemberg99e0c182007-05-29 07:00:23 +0000135 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
136 transformation. This significantly reduces the loading time of CFF
137 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000138
Werner Lemberg99e0c182007-05-29 07:00:23 +0000139 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000140
Werner Lemberg99e0c182007-05-29 07:00:23 +0000141 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
142 hinting script to CJK, since it works well with more scripts than
143 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
144 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000145
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001462007-05-25 Werner Lemberg <wl@gnu.org>
147
148 * docs/CHANGES: Updated.
149
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001502007-05-24 Werner Lemberg <wl@gnu.org>
151
152 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
153 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
154
1552007-05-24 Graham Asher <graham.asher@btinternet.com>
156
157 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
158 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
159
David Turner0d0365e2007-05-22 09:53:44 +00001602007-05-22 David Turner <david@freetype.org>
161
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000162 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
163 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000164
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000165
166 Avoid heap blowup with very large .Z font files. This fixes
167 Savannah bug #19910.
168
169 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
170 `in_limit', `pad', `pad_bits', and `in_buff' members.
171 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
172 `buf_total' members.
173
174 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
175 only one argument.
176 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000177
1782007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000179
180 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
181 (ps_dimension_set_mask_bits): Remove `const'.
182
David Turner0d0365e2007-05-22 09:53:44 +00001832007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000184
185 * src/sfnt/ttmtx.c (tt_face_get_metrics)
186 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
187
Werner Lembergb826fa72007-05-19 07:18:48 +00001882007-05-19 Derek Clegg <dclegg@apple.com>
189
190 Savannah patch #5929.
191
192 * include/freetype/tttables.h, src/base/ftobjcs.c
193 (FT_Get_CMap_Format): New function.
194
195 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
196 `format' member.
197 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
198 cmap_info->format.
199
Werner Lemberg6f99c882007-05-19 07:01:49 +00002002007-05-19 Werner Lemberg <wl@gnu.org>
201
202 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
203 before handling subglyphs so that it can be reinitialized each time.
204 This fixes Savannah bug #19859.
205
Werner Lemberg95bc9d32007-05-16 15:19:42 +00002062007-05-16 Werner Lemberg <wl@gnu.org>
207
208 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
209 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
210 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
211 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
212 tt_face_get_metrics): Fix type-punning issues.
213
David Turner0a24bd22007-05-15 10:54:10 +00002142007-05-15 David Turner <david@freetype.org>
215
216 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000217 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
218 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000219 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000220 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000221
Werner Lemberg607dec72007-05-15 06:49:37 +00002222007-05-15 Graham Asher <graham.asher@btinternet.com>
223
224 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
225 variable.
226 * src/autofit/afloader.c (af_loader_load_g): Ditto.
227
228 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
229 (open_face_from_buffer): Initialize `stream'.
230 (FT_Request_Metrics): Remove unused variable.
231 Remove redundant `break' statements.
232 (FT_Get_Track_Kerning): Remove unused variable.
233
234 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
235 afm_parse_kern_data): Remove redundant
236 `break' statements.
237 (afm_parser_parse): Ditto.
238 Don't use uninitialized variables.
239
240 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
241 Use `|' operator instead of `^' to set it.
242 Update all users.
243
244 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
245 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
246
247 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
248 comparison.
249 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
250 (TT_Load_Glyph): Remove unused variable.
251
Werner Lemberg8d463a52007-05-13 16:01:55 +00002522007-05-13 Derek Clegg <dclegg@apple.com>
253
254 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
255 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
256
David Turner711cf842007-05-11 14:36:24 +00002572007-05-11 David Turner <david@freetype.org>
258
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000259 * src/cache/ftbasic.c, include/freetype/ftcache.h
260 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
261 functions that allow us to look up glyphs using an FTC_Scaler object
262 to specify the size, making it possible to use fractional pixel
263 sizes.
264
265 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
266 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000267
Werner Lemberg94be20e2007-05-09 20:02:55 +00002682007-05-09 Graham Asher <graham.asher@btinternet.com>
269
270 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
271 (af_latin_metrics_scale_dim): Fix compiler warnings.
272
Werner Lemberg41271032007-05-06 04:51:48 +00002732007-05-06 Werner Lemberg <wl@gnu.org>
274
275 * builds/win32/visualce/freetype.sln: Removed, as requested by
276 Vincent.
277
Werner Lembergdf49e692007-05-04 06:30:05 +00002782007-05-04 Vincent RICHOMME <richom.v@free.fr>
279
280 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
281 PC targets.
282
283 * docs/CHANGES: Document them.
284
2852007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000286
287 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
288 mmap (which might happen on some RTOS). From Savannah patch #5909.
289
Werner Lemberg106eaf12007-05-03 07:07:47 +00002902007-05-03 Werner Lemberg <wl@gnu.org>
291
292 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
293 * include/freetype/freetype.h (FT_Set_Char_Size): Update
294 documentation.
295
Werner Lemberg1b5267d2007-04-28 21:06:15 +00002962007-04-28 Victor Stinner <victor.stinner@inl.fr>
297
298 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
299 `cmap'.
300
Werner Lembergcc712a22007-04-27 17:16:50 +00003012007-04-27 Werner Lemberg <wl@gnu.org>
302
303 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
304 number of points in contours. Problem reported by Victor Stinner
305 <victor.stinner@haypocalc.com>.
306 (TT_Process_Simple_Glyph): Synchronize variable types.
307
Werner Lemberg45bb18f2007-04-26 06:26:35 +00003082007-04-26 Werner Lemberg <wl@gnu.org>
309
310 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
311 zero in case of error. This fixes Savannah bug #19689.
312
David Turnera8b45e62007-05-11 14:10:30 +00003132007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
314
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000315 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
316 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000317
Werner Lembergfcc1f472007-04-10 11:51:50 +00003182007-04-10 Martin Horak <horakm@centrum.cz>
319
320 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
321 Ignore `hhea' table. This fixes Savannah bug #19261.
322
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003232007-04-09 Werner Lemberg <wl@gnu.org>
324
325 * Version 2.3.4 released.
326 =========================
327
328
329 Tag sources with `VER-2-3-4'.
330
331 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
332 version number to 2.3.4.
333
334 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
335 builds/win32/visualc/freetype.dsp,
336 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
337
338 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
339
340 * builds/unix/configure.raw (version_info): Set to 9:15:3.
341
Werner Lembergf4a52a62007-04-09 08:40:11 +00003422007-04-09 Martin Horak <horakm@centrum.cz>
343
344 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
345 memory stream to avoid a crash with the incremental memory
346 interface (Savannah bug #19260).
347
David Turner1dcb4442007-04-06 08:19:04 +00003482007-04-06 David Turner <david@freetype.org>
349
Werner Lembergc81cf612007-04-06 09:28:23 +0000350 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
351 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000352
Werner Lemberg9f83e052007-04-05 02:28:23 +00003532007-04-04 Werner Lemberg <wl@gnu.org>
354
355 * Version 2.3.3 released.
356 =========================
357
358
359 Tag sources with `VER-2-3-3'.
360
361 * docs/CHANGES: Mention CVE-2007-1351.
362
David Turner7338ec22007-04-03 14:30:34 +00003632007-04-03 David Turner <david@freetype.org>
364
365 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000366 if one of the resolution values is 0, treat it as if it were the
367 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000368
David Turnere6472c12007-04-02 13:13:54 +00003692007-04-02 David Turner <david@freetype.org>
370
Werner Lemberg94f12272007-04-03 07:19:53 +0000371 Add special code to detect `extra-light' fonts and do not snap their
372 stem widths too much to avoid bizarre hinting effects.
373
374 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
375 `extra_light' members.
376
377 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
378 them.
379 (af_latin_metrics_scale_dim): Set `extra_light'.
380 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000381
David Turner3f539692007-03-28 14:53:40 +00003822007-03-28 David Turner <david@freetype.org>
383
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000384 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000385 padding.
386
Werner Lemberga08b2172007-03-28 07:17:17 +00003872007-03-28 Werner Lemberg <wl@gnu.org>
388
389 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
390 gracefully.
391 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000392 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000393 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
394 number of code points in Unicode.
395
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000396 * builds/win32/visualc/index.html,
397 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000398 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000399 s/232/233/.
400
401 * docs/CHANGES: Mention ftdiff.
402
David Turner3b242d32007-03-26 12:03:04 +00004032007-03-26 David Turner <david@freetype.org>
404
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000405 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
406 corresponding code.
407 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000408
Werner Lemberga08b2172007-03-28 07:17:17 +0000409 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000410 computations in order to ignore single-point contours. These are
411 never rasterized and correspond in certain fonts to mark-attach
412 points that are very far from the glyph's real outline, ruining the
413 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000414
Werner Lemberga08b2172007-03-28 07:17:17 +0000415 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000416 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000417 Otherwise code that uses them will most certainly ruin the fixed
418 advance property.
David Turner23553d62007-03-26 13:37:17 +0000419
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000420 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
421 documentation and bump version number to 2.3.3.
422
423 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
424
425 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000426
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00004272007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
428
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000429 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
430 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000431 * builds/vms/ftconfig.h: Ditto.
432 * include/freetype/config/ftconfig.h: Ditto.
433
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004342007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
435
Werner Lemberg14ffe092007-03-22 06:12:43 +0000436 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
437 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000438 proposed by Sean McBride:
439 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
440
4412007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
442
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000443 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
444 setjmp, proposed by Sean McBride:
445 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
446
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004472007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
448
Werner Lembergc9f6c662007-03-21 13:30:14 +0000449 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
450 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
451 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000452
David Turner74c34eb2007-03-18 07:19:31 +00004532007-03-18 David Turner <david@freetype.org>
454
Werner Lembergc9f6c662007-03-21 13:30:14 +0000455 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
456 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000457
Werner Lembergc9f6c662007-03-21 13:30:14 +0000458 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000459
David Turner89020d92007-03-17 17:48:57 +00004602007-03-17 David Turner <david@freetype.org>
461
Werner Lembergc9f6c662007-03-21 13:30:14 +0000462 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
463 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000464
Werner Lemberg25d592a2007-03-09 07:59:35 +00004652007-03-09 Werner Lemberg <wl@gnu.org>
466
467 * Version 2.3.2 released.
468 =========================
469
470
471 Tag sources with `VER-2-3-2'.
472
473 * builds/win32/visualc/index.html,
474 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000475 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000476 s/231/232/.
477
David Turner3a51afa2007-03-08 10:50:38 +00004782007-03-08 David Turner <david@freetype.org>
479
Werner Lemberg25d592a2007-03-09 07:59:35 +0000480 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000481
Werner Lemberg25d592a2007-03-09 07:59:35 +0000482 * builds/unix/configure.raw (version_info): Set to 9:13:3.
483
484 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
485
486 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000487
Werner Lemberg1e259de2007-03-08 15:39:21 +0000488 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
489 function to work properly, over-writing user-provided buffers in
490 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000491
David Turner121cad52007-03-08 16:43:50 +0000492
Werner Lemberg3d92f082007-03-06 11:59:24 +00004932007-03-05 Werner Lemberg <wl@gnu.org>
494
495 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
496 macro for `strstr'.
497
498 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
499 `trick_names', as suggested by Ivan Nincic.
500
David Turner085bc6e2007-03-05 17:40:03 +00005012007-03-05 David Turner <david@freetype.org>
502
Werner Lembergd112cf02007-03-06 12:06:56 +0000503 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
504 case FT_Init_FreeType fails for some reason. Problem reported by
505 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000506
Werner Lembergd112cf02007-03-06 12:06:56 +0000507 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
508 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
509 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
510 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000511
Werner Lembergd112cf02007-03-06 12:06:56 +0000512 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
513 signed values, not unsigned ones. Problem reported by Johannes
514 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000515
David Turner601aefe2007-02-21 16:47:49 +00005162007-02-21 David Turner <david@freetype.org>
517
Werner Lembergde5e6862007-02-25 21:06:43 +0000518 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
519 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000520
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00005212007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
522
523 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
524 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
525 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
526
Werner Lemberga0915172007-02-16 08:12:50 +00005272007-02-16 Werner Lemberg <wl@gnu.org>
528
529 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
530 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
531
David Turner2c4500e2007-02-14 15:08:47 +00005322007-02-14 David Turner <david@freetype.org>
533
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000534 It seems that the following changes fix most of the known
535 interpreter problems with my fonts, but more testing is needed,
536 though.
537
538 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
539 (TT_MulFix14): Rewrite.
540 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
541 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000542
Werner Lembergc6a14082007-02-12 22:08:15 +00005432007-02-12 Werner Lemberg <wl@gnu.org>
544
545 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
546 warnings.
547
548 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
549 (bdf_interpret_style): Ditto.
550
David Turnerc0f9c4a2007-02-12 14:55:03 +00005512007-02-12 David Turner <david@freetype.org>
552
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000553 Simplify projection and dual-projection code interface.
554
Werner Lemberg406d25f2007-02-12 22:01:18 +0000555 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
556 FT_Vector' as argument type.
557 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
558 Updated.
559 (CUR_fast_project, CUR_fast_dualproj): New macros.
560 (Project, Dual_Project, Project_x, Project_y): Updated.
561 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
562 macros.
563
564
565 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
566 adjustments for the non-light auto-hinted modes. Gets rid of
567 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000568
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000569 * src/autofit/aflatin.c (af_latin_hints_link_segments,
570 af_latin_hints_compute_edges): Slight optimization of the segment
571 linker and better handling of serif segments to get rid of broken
572 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000573
David Turnerc0f9c4a2007-02-12 14:55:03 +0000574
Werner Lemberg442bfb82007-02-12 21:44:10 +0000575 Introduce new string functions and the corresponding macros to get
576 rid of various uses of strcpy and other `evil' functions, as well as
577 to simplify a few things.
578
579 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
580 ft_mem_strcpyn): New declarations.
581 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
582 macros.
583 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
584 functions.
585
586 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
587 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
588 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
589 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
590 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
591 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
592 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
593 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000594
Werner Lemberg406d25f2007-02-12 22:01:18 +0000595 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
596
Werner Lemberg582067d2007-02-11 15:03:05 +00005972007-02-11 Werner Lemberg <wl@gnu.org>
598
599 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
600 non-spacing glyphs.
601
Werner Lemberg8f474532007-02-07 08:31:01 +00006022007-02-07 Tom Parker <palfrey@tevp.net>
603
604 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
605 pointer.
606
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006072007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
608
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000609 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
610 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000611 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000612 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
613 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
614 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
615 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000616
617 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
618 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000619 * builds/mac/ftmac.c: Ditto.
620
6212007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
622
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000623 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000624 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000625 #include <ftmac.c>.
626
6272007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
628
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000629 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
630 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
631 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
632 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
633 FT_GetFilePath_From_Mac_ATS_Name.
634 * builds/mac/ftmac.c: Ditto.
635
6362007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
637
Werner Lembergdcbb7082007-02-08 08:54:09 +0000638 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000639 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
640 for passing to FT_New_Face_From_FSSpec.
641
6422007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
643
Werner Lembergdcbb7082007-02-08 08:54:09 +0000644 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000645 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000646
647 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
648 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000649 * builds/mac/ftmac.c (OS_INLINE): Ditto.
650
Werner Lemberg313d7772007-02-01 08:10:45 +00006512007-02-01 Werner Lemberg <wl@gnu.org>
652
653 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
654 Explain why applications shouldn't use it. Found by Alexei.
655
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006562007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000657
658 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
659 message.
660
661 * src/gxvalid/gxvmort1.c
662 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
663 message.
664
Werner Lemberg53935932007-01-31 08:53:02 +00006652007-01-31 Werner Lemberg <wl@gnu.org>
666
667
668 * Version 2.3.1 released.
669 =========================
670
671
672 Tag sources with `VER-2-3-1-FINAL'.
673
674 * builds/win32/visualc/freetype.dsp,
675 builds/win32/visualc/freetype.vcproj: s/230/231/.
676 * builds/win32/visualc/index.html: s/221/231/.
677
678 * vms_make.com: Add `ftgasp'.
679
David Turnera7ee6082007-01-30 10:33:53 +00006802007-01-30 David Turner <david@freetype.org>
681
Werner Lemberg53935932007-01-31 08:53:02 +0000682 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000683
Werner Lemberg53935932007-01-31 08:53:02 +0000684 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000685
Werner Lemberg25d592a2007-03-09 07:59:35 +0000686 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000687 s/2.3.0/2.3.1/.
688
689 * builds/unix/configure.raw (version_info): Set to 9:12:3.
690
691
692 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
693 (af_loader_load_g): Disable the warper (i.e., the light hinting
694 improvements) to make a 2.3.1 bugfix release before introducing a
695 new feature. This should give us more time to tune and improve the
696 warper for the next release.
697
698 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000699
David Turnerd91eebd2007-01-26 15:05:41 +00007002007-01-25 David Turner <david@freetype.org>
701
Werner Lembergbf241762007-01-26 16:08:49 +0000702 For light auto-hinting, improve glyph advance widths and resurrect
703 normal/full hinting to its normal quality.
704
705 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
706 and `xmax_delta'.
707 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
708 and `xmax_delta'.
709
710 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
711 preprocessor conditional with if-clause, handling both light and
712 normal mode.
713
714 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
715 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000716
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00007172007-01-25 Werner Lemberg <wl@gnu.org>
718
719 * docs/release: Updated -- Savannah uses a new uploading scheme.
720
David Turnera42567b2007-01-25 12:23:37 +00007212007-01-25 David Turner <david@freetype.org>
722
Werner Lembergd7855662007-01-25 13:53:56 +0000723 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000724
Werner Lembergd7855662007-01-25 13:53:56 +0000725 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
726 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
727 functions.
David Turnera42567b2007-01-25 12:23:37 +0000728
Werner Lembergd7855662007-01-25 13:53:56 +0000729 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000730
Werner Lembergb1be9e82007-01-25 11:50:00 +00007312007-01-25 Werner Lemberg <wl@gnu.org>
732
733 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000734 correctly in a sanity check. Since this function is only used to
735 load local and global functions, any charstring that called the last
736 local/global function would fail otherwise. This fixes Savannah bug
737 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000738
739 * docs/CHANGES: Document it.
740
David Turnerb6de8d12007-01-23 15:51:50 +00007412007-01-23 David Turner <david@freetype.org>
742
Werner Lembergb1be9e82007-01-25 11:50:00 +0000743 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
744 prevented compilation when disabling both the unpatented and the
745 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000746
Werner Lembergb1be9e82007-01-25 11:50:00 +0000747
748 Fix and enable the warper to improve `light' hinting mode. This is
749 not necessarily a final version, but it seems to work well.
750
751 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
752 Disable code.
753 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
754 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
755
756 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
757 (af_warper_compute_line_best): Fix array size of `scores'.
758 (af_warper_compute): Better handling of border cases.
759 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
760 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000761
Werner Lemberg011d1112007-01-21 09:36:00 +00007622007-01-21 Werner Lemberg <wl@gnu.org>
763
Werner Lemberg42b63b22007-01-21 21:01:33 +0000764 * ChangeLog: Split off older entries into...
765 * ChangeLog.22: This new file.
766
7672007-01-21 Werner Lemberg <wl@gnu.org>
768
Werner Lemberg555258f2007-01-21 09:46:37 +0000769 * docs/CHANGES: Document SHZ fix.
770
7712007-01-21 George Williams <gww@silcom.com>
772
773 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
774 points.
775
7762007-01-21 Werner Lemberg <wl@gnu.org>
777
Werner Lemberg011d1112007-01-21 09:36:00 +0000778 * src/sfnt/ttmtx.c (tt_face_get_metrics)
779 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
780
Werner Lemberg87a5a432007-01-17 12:44:39 +00007812007-01-17 Werner Lemberg <wl@gnu.org>
782
Werner Lembergb8003292007-01-17 12:56:25 +0000783
784 * Version 2.3.0 released.
785 =========================
786
787
788 Tag sources with `VER-2-3-0-FINAL'.
789
7902007-01-17 Werner Lemberg <wl@gnu.org>
791
Werner Lemberg87a5a432007-01-17 12:44:39 +0000792 * docs/release: Updated.
793
David Turner22122722007-01-16 20:06:44 +00007942007-01-16 David Turner <david@freetype.org>
795
Werner Lemberg87a5a432007-01-17 12:44:39 +0000796 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
797 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
798 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
799 warnings.
David Turner22122722007-01-16 20:06:44 +0000800
Werner Lemberg267e1d72007-01-15 07:48:09 +00008012007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
802
803 * builds/amiga/makefile, builds/amiga/makefile.os4,
804 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
805
806 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
807
Werner Lemberg8c4120d2007-01-15 06:42:40 +00008082007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
809
810 Fix various compiler warnings.
811
812 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
813 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
814 s/index/strike_index/.
815 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
816
817 * src/gxvalid/gxvmorx5.c
818 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
819
820 * src/truetype/ttinterp.c (Compute_Point_Displacement),
821 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
822 uninitialized variables.
823
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008242007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
825
826 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
827
Werner Lemberg281c1482007-01-13 22:50:51 +00008282007-01-13 Werner Lemberg <wl@gnu.org>
829
830 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
831 versions up to 0x3FF without complaining.
832
Werner Lembergac250b22007-01-13 14:01:36 +00008332007-01-13 Derek Clegg <dclegg@apple.com>
834
835 Add FT_Get_PS_Font_Info interface to CFF driver.
836
837 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
838 (CFF_FontRec): Add `font_info' field.
839
840 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
841 (cff_font_done): Free font->font_info if necessary.
842
843 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
844 (cff_service_ps_info): Register cff_ps_get_font_info.
845
Werner Lemberg23df31a2007-01-13 08:45:00 +00008462007-01-13 Werner Lemberg <wl@gnu.org>
847
848 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
849 with C++ compiler.
850
851 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
852 af_glyph_hints_dump_edges): Ditto.
853
854 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
855 `modules.cfg').
856
857 * src/sfnt/ttsbit0.h: Remove.
858
859 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
860
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008612007-01-12 David Turner <david@freetype.org>
862
863 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
864 bug in the bitmap emboldener if the pitch of the source bitmap is
865 much larger than its width.
866
867 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
868 compilation warning.
869
Werner Lemberg6d96d312007-01-12 10:30:19 +00008702007-01-12 Werner Lemberg <wl@gnu.org>
871
872 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
873 `automake' CVS module from sources.redhat.com.
874
Werner Lemberg17432b52007-01-12 09:28:44 +00008752007-01-11 Werner Lemberg <wl@gnu.org>
876
877 * src/type1/t1load.c (is_space): Removed.
878 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
879 (parse_charstrings): Use IS_PS_TOKEN.
880
881
882 * autogen.sh: Avoid bash specific syntax.
883
David Turner038ace22007-01-11 15:00:59 +00008842007-01-11 David Turner <david@freetype.org>
885
Werner Lemberg17432b52007-01-12 09:28:44 +0000886 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000887
Werner Lemberg17432b52007-01-12 09:28:44 +0000888 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000889
Werner Lemberg17432b52007-01-12 09:28:44 +0000890 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
891 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000892 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000893
Werner Lemberg17432b52007-01-12 09:28:44 +0000894 * autogen.sh: Small fix to get it working on Mac OS X properly:
895 The issue is that GNU libtool is called `glibtool' on this platform,
896 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000897
David Turner2628ea92007-01-10 13:15:56 +00008982007-01-10 David Turner <david@freetype.org>
899
Werner Lemberg17432b52007-01-12 09:28:44 +0000900 * all-sources: Tag all sources with VER-2-3-0-RC1 and
901 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000902
Werner Lemberg17432b52007-01-12 09:28:44 +0000903 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
904 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
905 version number to 2.3.0.
906
907 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
908 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000909
910 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000911 include/freetype/ftlcdfil.h: Update reference documentation with
912 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000913
Werner Lemberg17432b52007-01-12 09:28:44 +0000914 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
915 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000916
Werner Lembergbf02d392007-01-10 07:07:37 +00009172007-01-10 Derek Clegg <dclegg@apple.com>
918
919 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
920 values.
921
David Turnerf48b60e2007-01-08 15:15:32 +00009222007-01-08 David Turner <david@freetype.org>
923
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000924 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000925
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000926 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
927 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000928 corresponding to a given character pixel size.
929
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000930 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
931 `gasp' table, in order to avoid potential problems with later
932 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000933
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000934 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
935 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000936
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000937 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
938 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
939 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
940 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000941
Werner Lemberge6b6f372007-01-07 00:06:47 +00009422007-01-07 Werner Lemberg <wl@gnu.org>
943
Werner Lembergb8004d22007-01-07 09:13:38 +0000944 * src/cid/cidparse.c (cid_parser_new): Improve error message for
945 Type 11 fonts.
946 Scan for `/sfnts' token.
947
9482007-01-07 Werner Lemberg <wl@gnu.org>
949
950 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000951
Werner Lembergbe5f7972007-01-06 07:51:48 +00009522007-01-06 Werner Lemberg <wl@gnu.org>
953
954 * src/cff/cffload.c (cff_index_init): Remove unused variable.
955 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
956
David Turnera8cf42b2007-01-04 16:46:46 +00009572007-01-04 David Turner <david@freetype.org>
958
Werner Lembergf6294392007-01-06 07:47:45 +0000959 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
960 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000961
Werner Lembergf6294392007-01-06 07:47:45 +0000962
963 Do not allocate interpreter-specific tables in memory if we are not
964 going to load glyphs with the bytecode interpreter anyway.
965
966 * src/truetype/ttgload.c (tt_loader_init): Load execution context
967 only if glyph is hinted.
968 Updated.
969 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
970 and `cvs_ready'.
971 Add `tt_size_ready_bytecode' declaration.
972 * src/truetype/ttobjs.c (tt_size_done_bytecode,
973 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
974 (tt_size_init): Move most code into `tt_size_init_bytecode'.
975 (tt_size_done): Move most code into `tt_size_done_bytecode'.
976 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000977
David Turner91a34022007-01-05 14:47:08 +0000978
Werner Lembergf6294392007-01-06 07:47:45 +0000979 Don't extract the metrics table from the SFNT font file. Instead,
980 reparse it on each glyph load. The runtime difference is not
981 noticeable, and it can save a lot of heap memory when memory-mapped
982 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000983
Werner Lembergf6294392007-01-06 07:47:45 +0000984 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
985 `horz_metrics_offset' and `vert_metrics_ofset'.
986 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
987 Updated.
988
989
990 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
991
992
993 Do not load the CFF index offsets into memory, since this wastes a
994 *lot* of heap memory with large Asian CFF fonts. There is no
995 significant performance loss.
996
997 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
998 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
999 `data_size'.
1000 (CFF_CharsetRec): Add field `num_glyphs'.
1001
1002 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1003 cff_charset_cid_to_gindex): New functions.
1004 (cff_new_index): Renamed to...
1005 (cff_index_init): This. Update all callers.
1006 Updated -- some code has been moved to `cff_index_load_offsets'.
1007 (cff_done_index): Renamed to...
1008 (cff_index_done): This. Update all callers.
1009 (cff_index_get_pointers, cff_index_access_element): Updated to use
1010 stream offsets.
1011 (cff_charset_compute_cids): Set `num_glyphs' field.
1012 (cff_encoding_load): Updated.
1013
1014 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001015
10162007-01-04 David Turner <david@freetype.org>
1017
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001018 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1019 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001020
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001021 * README.CVS: Add common problem description and solution
1022 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001023
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001024 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001025
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001026 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001027
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001028 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001029
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001030 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1031 (TWorker): This.
1032 Remove `count_table' and `memory'.
1033 Make `grays' a pointer.
1034 (TRaster): New structure.
1035 (count_table): New static array.
1036 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1037 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1038 ft_black_set_mode, ft_black_render): Updated.
1039 (ft_black_init): Don't initialize `count_table'.
1040 (ft_black_reset): Use the render pool. This saves about 6KB of
1041 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001042
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001043 * src/smooth/ftgrays.c (TRaster): Replaced with...
1044 (TWorker): This.
1045 Remove `memory'.
1046 (TRaster): New structure.
1047
1048 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1049 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1050 gray_render_span, gray_raster_render): Updated.
1051 (gray_raster_reset): Use the render pool. This saves about 6KB of
1052 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001053
David Turner8a6c44e2007-01-04 17:03:11 +00001054 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1055 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001056 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1057 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1058 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001059
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001060 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1061 Remove a typo that results in no hinting and a memory leak with some
1062 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001063
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001064 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001065 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001066 CFF_Faces in it. We need to close all faces before destroying the
1067 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001068
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010692007-01-02 Werner Lemberg <wl@gnu.org>
1070
1071 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1072 Remove compiler warning.
1073
David Turner9207e002007-01-02 16:58:13 +000010742007-01-02 David Turner <david@freetype.org>
1075
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001076 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001077
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000010782006-12-31 Masatake YAMATO <jet@gyve.org>
1079
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001080 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1081 function.
1082 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001083 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001084 `gxv_kern_subtable_fmt0_pairs_validate'.
1085
David Turner115b4422006-12-22 11:37:05 +000010862006-12-22 David Turner <david@freetype.org>
1087
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001088 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1089 warnings.
David Turner115b4422006-12-22 11:37:05 +00001090
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001091 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1092 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001093
Werner Lemberg4755bf72006-12-16 08:58:44 +000010942006-12-16 Anders Kaseorg <anders@kaseorg.com>
1095
1096 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1097 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1098
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010992006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1100
Werner Lemberg9b774e22007-01-16 06:11:27 +00001101 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001102 sync with the modification by Jens Claudius on 2006-08-22; cf.
1103 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 +00001104
11052006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1106
1107 * src/base/ftmac.c: Specialized for Mac OS X only.
1108 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1109 * builds/unix/configure.raw: Ditto. When explicit switches for
1110 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1111 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1112
11132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1114
1115 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1116 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1117 instead of src/base/ftmac.c
1118 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1119 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1120 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1121 that cannot be built at present.
1122
11232006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1124
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001125 * src/base/ftobjs.c: Improvement of resource fork handler for
1126 POSIX, cf.
1127 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001128 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1129 format or .dfont, to simulate the face index number counted by ftmac.c.
1130 (IsMacResource): Return the number of scalable faces correctly.
1131
Werner Lembergec5b4502006-12-10 07:51:38 +000011322006-12-10 Werner Lemberg <wl@gnu.org>
1133
1134 * builds/toplevel.mk (version): Protect against `distclean' target.
1135
Werner Lembergb26b3142006-12-09 20:01:43 +000011362006-12-09 Werner Lemberg <wl@gnu.org>
1137
1138 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1139 or `type'.
1140
1141 * builds/freetype.mk (version): Extracted from freetype.h, using
1142 GNU make's built-in string functions.
1143 (refdoc): Use $(version) instead of static version number.
1144
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000011452006-12-08 Werner Lemberg <wl@gnu.org>
1146
1147 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1148
Werner Lemberg15c29502006-12-09 07:29:54 +000011492006-12-08 Vladimir Volovich <vvv@vsu.ru>
1150
1151 * src/tools/apinames (State): Remove final comma in structure -- xlc
1152 v5 under AIX 4.3 doesn't like this.
1153
David Turnerdbf3b432006-12-07 21:18:09 +000011542006-12-07 David Turner <david@freetype.org>
1155
Werner Lemberg256a3512006-12-08 06:49:33 +00001156 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1157 to the spacing of auto-fitted glyphs. This only impacts rare
1158 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001159
Werner Lemberg11171312006-12-03 09:43:40 +000011602006-12-03 Werner Lemberg <wl@gnu.org>
1161
1162 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1163
Werner Lemberg960ba592006-12-01 08:20:47 +000011642006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001165
Werner Lemberg960ba592006-12-01 08:20:47 +00001166 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1167 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1168 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001169
David Turner80658e52006-11-28 08:09:20 +00001170
Werner Lemberg960ba592006-12-01 08:20:47 +00001171 * include/freetype/ftxf86.h: Fix and extend comment so that it
1172 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001173
Werner Lemberg960ba592006-12-01 08:20:47 +00001174 * include/freetype/ftchapters.h: Add `font_format' section.
1175
1176
1177 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1178 to TOC in index page.
1179
11802006-11-28 David Turner <david@freetype.org>
1181
1182 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1183 trying to render into a zero-width/height bitmap, not an error code.
1184
1185 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1186
1187 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1188 ones instead.
1189
1190 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1191 variable.
David Turner80658e52006-11-28 08:09:20 +00001192
Werner Lemberg8636c292006-11-26 22:28:13 +000011932006-11-26 Pierre Hanser <hanser@club-internet.fr>
1194
1195 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1196
Werner Lemberg960ba592006-12-01 08:20:47 +000011972006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001198
Werner Lemberg960ba592006-12-01 08:20:47 +00001199 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1200 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1201 Add stubs to link the `ftgrid' test program when debugging is
1202 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001203
Werner Lemberg960ba592006-12-01 08:20:47 +000012042006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001205
1206 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001207 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1208
1209 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1210 Emit more sensible information.
1211
1212 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1213
1214 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1215 rounding of blue values.
1216 (af_latin_hints_compute_segments): Hint segment heights.
1217 (af_latin_hints_link_segments): Reduce `len_score' value.
1218 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1219 value and use `height' member for comparisons.
1220 (af_latin_hint_edges): Extend logging message.
1221 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001222
Werner Lemberg91959bf2006-11-22 10:36:55 +000012232006-11-22 Werner Lemberg <wl@gnu.org>
1224
1225 Fix Savannah bug #15553.
1226
1227 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1228 program after a change from mono to grayscaling (and vice versa).
1229 Use correct constant for comparison to get `exec->grayscale'.
1230
Werner Lemberg913a3652006-11-19 09:19:17 +000012312006-11-18 Werner Lemberg <wl@gnu.org>
1232
1233 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001234 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001235 This patch fixes Savannah bug #18301.
1236
1237 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1238 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1239 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1240 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1241 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1242 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1243 (FNT_Load_Glyph): Check validity of `glyph_index'.
1244
David Turner7bab6ae2006-11-13 11:25:06 +000012452006-11-13 David Turner <david@freetype.org>
1246
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001247 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1248 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001249
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001250 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1251 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1252 when building the library to change the default LCD filter to be
1253 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001254
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001255 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001256
David Turner8765c712006-11-10 16:49:42 +000012572006-11-10 David Turner <david@freetype.org>
1258
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001259 * src/smooth/ftsmooth.c: API change for the LCD
1260 filter. The FT_LcdFilter value is an enumeration describing which
1261 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1262 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1263 algorithm which produces strong color fringes for everything
1264 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001265
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001266 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1267 second parameter to an enum type.
1268
1269 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1270 (_ft_lcd_filter): Rename to...
1271 (_ft_lcd_filter_fir): This.
1272 Update parameters.
1273 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1274 (FT_Library_Set_LcdFilter): Update parameters.
1275 Handle new filter modes.
1276
1277 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1278 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1279 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1280 callback and update other fields.
1281
1282 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1283 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1284 Other minor improvements.
1285
1286 * src/autofit/aflatin.c: Various tiny improvements that drastically
1287 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1288 (af_latin_hints_compute_edges): Fix typo.
1289 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001290
David Turner4e9cc3c2006-11-09 16:31:52 +000012912006-11-09 David Turner <david@freetype.org>
1292
Werner Lemberg49c77a82006-11-09 21:51:57 +00001293 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1294 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001295
Werner Lemberg5e430892006-11-07 09:35:03 +000012962006-11-07 Zhe Su <james.su@gmail.com>
1297
1298 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1299 also.
1300
Werner Lemberg111b5ae2006-11-03 09:40:12 +000013012006-11-03 Werner Lemberg <wl@gnu.org>
1302
1303 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1304
David Turner40604742006-11-02 16:37:35 +000013052006-11-02 David Turner <david@freetype.org>
1306
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001307 Add a few tweaks to better handle serif fonts.
1308 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001309
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001310 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1311 segments that are less than 1.5 pixels high. This gets rid of
1312 *many* corner cases with serifs.
1313 (af_latin_align_linked_edge): Add logging message.
1314 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1315 Add logging messages.
1316 Handle AF_EDGE_FLAG flag specially.
1317
1318 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1319 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1320
1321 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1322 Update external declarations.
1323 (af_corner_orientation, af_corner_is_flat): Replaced by...
1324
1325 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1326 ft_corner_is_flat): These declarations.
1327
1328 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1329 Comment out. Replaced by...
1330
1331 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1332 These functions. Update all callers.
1333 (FT_Add64) [!FT_LONG64]: Simplify.
1334
1335 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1336 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1337 production of garbage by missing lots of segments.
1338
1339 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1340
1341 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1342 [AF_DEBUG]: Set _af_debug_hints.
1343
1344
1345 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1346 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1347 and ft_corner_orientation.
1348
1349
1350 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001351
Werner Lemberge88c5262006-10-24 05:46:26 +000013522006-10-24 Werner Lemberg <wl@gnu.org>
1353
1354 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1355
1356 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1357 as argument.
1358
David Turnera1861392006-10-23 16:00:59 +000013592006-10-23 Zhe Su <zsu@novell.com>
1360
Werner Lemberg715e96e2006-10-24 05:28:45 +00001361 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1362 better deal with broken Asian fonts with strange glyphs, having
1363 self-intersections and other peculiarities. The used algorithm is
1364 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001365
David Turnere140f142006-10-23 08:56:57 +000013662006-10-23 David Turner <david@freetype.org>
1367
Werner Lemberg715e96e2006-10-24 05:28:45 +00001368 Speed up the CFF font loader. With some large CFF fonts,
1369 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001370
Werner Lemberg715e96e2006-10-24 05:28:45 +00001371 * src/cff/cffload.c (cff_get_offset): Removed.
1372 (cff_new_index): Inline functionality of `cff_get_offset'.
1373 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1374 (cff_charset_done): Call `cff_charset_free_cids'.
1375 (cff_charset_load): Call `cff_charset_compute_cids'.
1376 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1377
1378 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1379 with FT_NEXT_XXX.
1380
1381
1382 Speed up the Postscript hinter, with more than 100% speed increase
1383 on my machine.
1384
1385 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1386 psh_corner_orientation): New functions.
1387 (psh_glyph_compute_inflections): Merge loops for efficiency.
1388 Use `psh_corner_orientation'.
1389 (psh_glyph_init): Use `psh_corner_is_flat'.
1390 (psh_hint_table_find_strong_point): Renamed to...
1391 (psh_hint_table_find_strong_points): This.
1392 Rewrite, adding argument to handle all points at once.
1393 Update all callers.
1394 (PSH_MAX_STRONG_INTERNAL): New macro.
1395 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001396
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013972006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1398
1399 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001400 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001401
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014022006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1403
1404 * docs/INSTALL.CROSS: New document file for cross-building.
1405
1406 * builds/unix/configure.raw: Preliminary cross-building support.
1407 Find native C compiler and pass it by CC_BUILD, and
1408 find suffix for native executable and pass it by EXEEXT_BUILD.
1409 Also suffix for target executable is passed by EXEEXT.
1410
Werner Lembergb9e6d692006-10-15 08:58:40 +00001411 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1412 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001413 CC_BUILD and EXEEXT_BUILD.
1414
Werner Lembergb9e6d692006-10-15 08:58:40 +00001415 * builds/exports.mk (APINAMES_EXE): Change the extension for
1416 apinames from the suffix for target (E) to that for building host
1417 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001418
Werner Lemberg82a07e92006-10-12 06:20:44 +000014192006-10-12 Werner Lemberg <wl@gnu.org>
1420
1421 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1422 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1423 which reference those files.
1424
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014252006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1426
Werner Lembergb9e6d692006-10-15 08:58:40 +00001427 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1428 embedded in freetype2.pc and freetype-config. Use it to record
1429 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001430
1431 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1432
1433 * builds/unix/freetype-config.in: Ditto.
1434
Werner Lemberg28e17d92006-10-11 17:27:47 +000014352006-10-11 Werner Lemberg <wl@gnu.org>
1436
1437 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1438 development.
1439
Jens Claudius336d2292006-10-03 08:53:37 +000014402006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1441
1442 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1443 argument to ft_setjmp.
1444
1445 * include/freetype/internal/ftvalid.h: Add comment that
1446 ft_validator_run must not be used.
1447
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014482006-10-01 Werner Lemberg <wl@gnu.org>
1449
1450 * src/base/ftbase.c: Undo change from 2006-09-30.
1451
1452 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1453
14542006-09-30 David Turner <david@freetype.org>
1455
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001456 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1457 s/unpatented_hinting/ignore_unpatented_hinter/.
1458 Update all callers.
1459
1460 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1461 auto-hinting shall be used or not.
1462
1463 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001464
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014652006-09-30 Werner Lemberg <wl@gnu.org>
1466
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001467 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1468 in use).
1469
1470 * src/base/ftbase.c: Include `ftlcdfil.c'.
1471
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014722006-09-29 Werner Lemberg <wl@gnu.org>
1473
1474 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1475 overlapping segments. Bug reported by Stefan Koch.
1476
David Turnerad830712006-09-27 16:20:59 +000014772006-09-28 David Turner <david@freetype.org>
1478
Werner Lemberg2c002e12006-09-29 21:31:53 +00001479 Fix a bug in the automatic unpatented hinting support which prevents
1480 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001481
Werner Lemberg2c002e12006-09-29 21:31:53 +00001482 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1483 s/force_autohint/unpatented_hinting/. Update all callers.
1484
1485 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1486
1487 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001488
David Turner8a317cf2006-09-27 07:52:48 +000014892006-09-27 David Turner <david@freetype.org>
1490
Werner Lemberg2c002e12006-09-29 21:31:53 +00001491 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001492
David Turner8a317cf2006-09-27 07:52:48 +00001493
David Turnere140f142006-10-23 08:56:57 +00001494 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001495 In a default build, the function `FT_Library_SetLcdFilter' returns
1496 `FT_Err_Unimplemented_Feature'; you need to #define
1497 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1498 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001499
Werner Lemberg2c002e12006-09-29 21:31:53 +00001500 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001501
Werner Lemberg2c002e12006-09-29 21:31:53 +00001502 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1503 typedef.
1504 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1505 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001506
Werner Lemberg2c002e12006-09-29 21:31:53 +00001507 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1508 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001509
Werner Lemberg2c002e12006-09-29 21:31:53 +00001510 Handle subpixel rendering.
1511 Simplify function.
1512 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1513 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1514
1515 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1516 pointing to <freetype/ftlcdfil.h>.
1517
1518 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1519 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1520
1521 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001522
Werner Lemberge20df4a2006-09-27 06:29:21 +000015232006-09-26 David Bustin
1524
1525 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1526 correctly. Reported as Savannah bug #17843.
1527
David Turner6f8c6222006-09-26 15:42:44 +000015282006-09-26 David Turner <david@freetype.org>
1529
Werner Lemberg110246c2006-09-26 21:55:44 +00001530 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1531 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1532 horizontal and vertical hinting for the purpose of debugging the
1533 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001534
Werner Lemberg110246c2006-09-26 21:55:44 +00001535 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1536 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001537
Werner Lemberg110246c2006-09-26 21:55:44 +00001538 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1539
1540 * include/freetype/config/ftoption.h, devel/ftoption.h
1541 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1542 we want to compile LCD-optimized rendering code (à la ClearType) or
1543 not. The macro *must* be disabled in default builds of the library
1544 for patent reasons.
1545
1546 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1547 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1548 isn't defined at compile time. This only changes the content of the
1549 rendered glyph to match the one of normal gray-level rendering,
1550 hence clients should not need to be modified.
1551
1552 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001553
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015542006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1555
1556 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1557 LWFN fails and both are available.
1558
David Turnerf3050052006-09-11 12:00:32 +000015592006-09-11 David Turner <david@freetype.org>
1560
Werner Lembergf9644552006-09-12 13:48:10 +00001561 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1562 report their English names through an Apple Roman
1563 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001564
Werner Lembergf9644552006-09-12 13:48:10 +00001565 If the font uses another name entry with language_id == English, it
1566 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001567
Werner Lembergf9644552006-09-12 13:48:10 +00001568 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1569 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001570
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015712006-09-05 Werner Lemberg <wl@gnu.org>
1572
1573 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001574 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001575 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1576 `HAN NOM B.ttf').
1577
1578 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1579
David Turner772e55d2006-09-05 09:45:15 +000015802006-09-05 David Turner <david@freetype.org>
1581
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001582 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001583
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001584 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1585 (TRaster): Remove `count_ex' and `count_ey'.
1586 (gray_find_cell): Remove 2nd and 3rd argument.
1587 (gray_alloc_cell): Merged with `gray_find_cell'.
1588 (gray_record_cell): Simplify.
1589 (gray_set_cell): Rewrite.
1590 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1591 (gray_render_span): Don't use FT_MEM_SET for small values.
1592 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1593 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1594 bitmap scanline.
1595 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001596
David Turneraa557a92006-09-04 16:42:44 +000015972006-09-04 David Turner <david@freetype.org>
1598
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001599 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1600 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001601
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016022006-09-03 Werner Lemberg <wl@gnu.org>
1603
1604 * devel/ftoption.h: Synchronize with
1605 include/freetype/config/ftoption.h.
1606
1607 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1608 variable declaration.
1609 (gray_convert_glyph): Fix compiler warnings.
1610
David Turner6d79f212006-09-01 14:09:35 +000016112006-09-01 David Turner <david@freetype.org>
1612
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001613 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1614 to recognize a few fonts that require the automatic unpatented
1615 loader.
David Turnerbd502952006-09-01 19:05:24 +00001616
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001617 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1618 rasterizer. The speed improvement is between 15% and 25%, depending
1619 on the font data.
1620
1621 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1622 (TCell): Redefine.
1623 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1624 (gray_init_cells): Updated.
1625 (gray_find_cell, gray_alloc_cell): New functions.
1626 (gray_record_cell): Rewritten to use `gray_find_cell' and
1627 `gray_alloc_cell'.
1628 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1629 QSORT_THRESHOLD):
1630 Removed.
1631 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1632 gray_dump_cells): Removed.
1633 (gray_sweep): Rewritten.
1634 (gray_convert_glyph): Rewrite code which used one of the sorting
1635 functions.
1636 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001637
Werner Lembergd898aed2006-08-29 09:50:34 +000016382006-08-29 Dr. Werner Fink <werner@suse.de>
1639
1640 * configure: Make it possible to handle configure options which
1641 have strings containing spaces.
1642
16432006-08-27 David Turner <david@freetype.org>
1644
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001645 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1646 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1647 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1648
1649 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1650 src/truetype/truetype.c, src/truetype/ttdriver.c,
1651 src/truetype/ttgload.c, src/truetype/ttgload.h,
1652 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1653 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1654 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1655
1656 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1657 member `force_autohint'.
1658
1659 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1660
1661 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1662 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001663
Jens Claudiusa787f452006-08-27 11:26:18 +000016642006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1665
1666 Fix miscellaneous compiler warnings.
1667
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001668 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1669 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001670
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001671 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1672 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1673 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001674
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001675 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1676 volatileness of argument to ft_longjmp. Spotted by Werner
1677 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001678
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001679 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1680 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001681
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001682 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1683 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001684
Werner Lembergc4c35b72006-08-27 08:03:46 +000016852006-08-27 Werner Lemberg <wl@gnu.org>
1686
1687 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1688 Reported by Jens.
1689
Jens Claudius088e44e2006-08-22 14:24:30 +000016902006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001691
Jens Claudius088e44e2006-08-22 14:24:30 +00001692 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001693 about addresses of volatile objects passed as function arguments as
1694 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001695
Werner Lembergc4c35b72006-08-27 08:03:46 +00001696 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1697 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001698
1699 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1700 argument `table' a pointer to a volatile object.
1701
1702 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1703 argument `table' a pointer to a volatile object.
1704
Jens Claudius2652bd52006-08-18 17:20:37 +000017052006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1706
1707 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1708 variable `_sfnt' as volatile since it must keep its value across
1709 a call to ft_setjmp.
1710 (gxv_validate): Same for local variables `memory' and `valid'.
1711 (classic_kern_validate): Same for local variables `memory',
1712 `ckern', and `valid'.
1713
1714 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1715 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1716 `jstf', and 'valid'.
1717
1718 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1719 local variable `cmap'.
1720
David Turner9fbfc6a2006-08-16 09:11:31 +000017212006-08-16 David Turner <david@freetype.org>
1722
Werner Lemberg12342992006-08-19 11:18:09 +00001723 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1724 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001725
Werner Lemberg12342992006-08-19 11:18:09 +00001726 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1727 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001728
David Turner33f5f242006-08-16 16:50:55 +00001729
Werner Lemberg12342992006-08-19 11:18:09 +00001730 Improvements to native TrueType hinting. This is a first try,
1731 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1732
1733 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1734 `extra_points2'.
1735
1736 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1737 `orus'.
1738
1739 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1740 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1741 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1742 handle `extra_points2'.
1743
1744 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1745 Remove compiler warning.
1746 (cur_to_arg): Remove macro.
1747 (TT_Hint_Glyph): Updated.
1748 (TT_Process_Simple_Glyph): Handle `orus'.
1749
1750 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1751 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1752 (LOC_Ins_IUP): Renamed to...
1753 (IUP_WorkerRec): This.
1754 Add `orus' member.
1755 (Shift): Renamed to...
1756 (_iup_worker_shift): This.
1757 Updated.
1758 (Interp): Renamed to...
1759 (_iup_worker_interpolate): This.
1760 Updated to handle `orus'.
1761 (Ins_IUP): Updated.
1762
1763 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1764 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001765
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017662006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1767
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001768 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001769 build ftvalid in ft2demos. This has been inadvertedly changed
1770 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001771
17722006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1773
Werner Lemberg12342992006-08-19 11:18:09 +00001774 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1775 Jens:
1776 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001777
Werner Lemberg12342992006-08-19 11:18:09 +00001778 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1779 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001780
1781 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1782
Jens Claudius9950adc2006-08-13 12:14:36 +000017832006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1784
Werner Lemberg12342992006-08-19 11:18:09 +00001785 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1786 T1_TOKEN_TYPE_KEY.
1787 (T1_FieldRec): Add `dict'.
1788 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1789 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1790 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001791
Werner Lemberg12342992006-08-19 11:18:09 +00001792 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1793 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001794
1795 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1796
1797 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001798 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1799 not T1_TOKEN_TYPE_ANY.
1800 (ps_parser_load_field): Make sure a token that should be a string or
1801 name is really a string or name.
1802 Avoid memory leak if a keyword has been already encountered and its
1803 value is overwritten.
1804 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1805 T1_FIELD_XXX.
1806 (parse_dict): Ignore keywords that occur in the wrong dictionary
1807 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001808
Werner Lemberg12342992006-08-19 11:18:09 +00001809 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1810 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001811
Werner Lemberg12342992006-08-19 11:18:09 +00001812 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1813 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001814
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000018152006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1816
1817 Move creation of field `buildchar' of T1_DecoderRec out of
1818 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1819 of it.
1820
1821 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1822 and `T1_Compute_Max_Advance'.
1823
1824 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1825 Remove field `face', add `len_buildchar'.
1826
1827 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1828 field `buildchar'.
1829
1830 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1831 finisher for T1_Decoder.
1832 (cid_slot_load_glyph): Do not ignore failure when initializing the
1833 T1_Decoder.
1834
1835 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1836 Updated.
1837 (t1_decoder_init): Remove initialization of fields `buildchar' and
1838 `len_buildchar'.
1839 (t1_decoder_done): Remove deallocation of field `buildchar'.
1840
1841 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1842 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1843 T1_Decoder.
1844 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1845 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1846 case of error.
1847
1848 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1849 `buildchar' of T1_FaceRec.
1850
1851 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1852 `buildchar' of T1_FaceRec.
1853
Werner Lemberg1a380e02006-07-14 18:28:08 +000018542006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1855
1856 * freetype2/include/freetype/internal/psaux.h: New macros
1857 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1858 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1859 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1860 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1861 (T1_DecoderRec): New fields `buildchar' and `face'.
1862 (IS_PS_TOKEN): New macro.
1863
1864 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1865 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1866
1867 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1868 `default_design_vector' and `num_default_design_vector'.
1869
1870 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1871 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1872 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1873
1874 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1875 `token' argument to be NULL if we want only to count the number of
1876 tokens.
1877 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1878 want to skip the array.
1879 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1880 want to skip the array.
1881
1882 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1883 support for (partially commented out) othersubrs 19-25, 27, and 28.
1884 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1885 (t1_decoder_done): Release new field `buildchar'.
1886
1887 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1888 functions.
1889 (t1_keywords): Register them.
1890 (t1_allocate_blend): Updated.
1891 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1892 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1893 (parse_dict): Remove `keyword_flags' argument.
1894 Use new macro IS_PS_TOKEN.
1895 Changed function so that later PostScript definitions override
1896 earlier ones.
1897 (t1_init_loader): Initialize new field `keywords_encountered'.
1898 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1899 `len_buildchar'.
1900 Remove `keywords_flags'.
1901
1902 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1903 `keywords_encountered'.
1904 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1905
1906 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1907 New entries for parsing /NDV, /CDV, and /DesignVector.
1908
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000019092006-07-07 Werner Lemberg <wl@gnu.org>
1910
1911 Add many checks to protect against malformed PCF files.
1912
1913 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1914 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1915
1916 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1917 data and check that tables don't overlap (using a simple
1918 bubblesort).
1919 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1920 New macros which give the size of data structures in the data
1921 stream.
1922 (pcf_get_properties): Use rough estimates to get array size limits.
1923 Assign `face->nprops' and `face->properties' earlier so that a call
1924 to PCF_Face_Done can do the clean-up in case of error.
1925 Protect against invalid string offsets.
1926 (pcf_get_metrics): Clean up code.
1927 Adjust tracing message levels.
1928 Use rough estimate to get array size limit.
1929 (pcf_get_bitmaps): Clean up code.
1930 Adjust tracing message levels.
1931 Use rough estimates to get offset limits.
1932 (pcf_get_encodings): Adjust tracing message level.
1933 (pcf_get_accel): Clean up code.
1934
Werner Lemberg8eb05252006-06-27 06:20:01 +000019352006-06-26 Werner Lemberg <wl@gnu.org>
1936
1937 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1938 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1939
Werner Lemberg24703f82006-06-26 19:12:51 +000019402006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1941
1942 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1943 (t1_decoder_parse_charstrings): Operator with
1944 opcode 15 pops its two arguments.
1945 Handle the case where the pops of an othersubr may be part of a
1946 subroutine.
1947 Handle unknown othersubrs gracefully: count their operands and let
1948 the following pop operators push the operands as the results onto
1949 the Type1 stack.
1950 Improve handling of setcurrentpoint opcode.
1951
Werner Lembergc011f4c2006-06-26 09:40:00 +000019522006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1953
1954 The Type 1 parser now skips over top-level procedures as required
1955 for a `Simplified Parser'. This makes the parser more robust as it
1956 doesn't poke around in PostScript code. Additionally, it makes the
1957 FontDirectory hackery in src/type1/t1load.c unnecessary.
1958
1959 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1960 (skip_literal_string): Add FT_Error as return value.
1961 Handle escapes better.
1962 (skip_string): Add FT_Error as return value.
1963 Don't set `parser->error' but return error code directly.
1964 (skip_procedure): New function.
1965 (ps_parser_skip_PS_token): Handle procedures.
1966 Update code.
1967 (ps_parser_to_token): Update code.
1968 (ps_parser_load_field_table): Handle bbox entries also.
1969
1970 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1971 Add commented-out code for synthetic fonts.
1972
Werner Lemberga2da05c2006-06-25 06:27:27 +000019732006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1974
1975 Fix two hinting bugs as reported in
1976 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1977
1978 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1979 `first_point' member.
1980
1981 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1982 `first_point'.
1983 (TT_Process_Composite_Glyph): Always untouch points.
1984
1985 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1986 `first_point' and `last_point' in case of composite glyphs.
1987 (Ins_IUP): Fix computation of `end_point'.
1988
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000019892006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1990
Werner Lembergef3d2c22006-06-25 06:07:14 +00001991 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1992 Mac. The original patch was written by David Sachitano and Lawrence
1993 Coopet, and modified by Sean McBride for MPW compatibility. Only
1994 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001995
Werner Lembergef3d2c22006-06-25 06:07:14 +00001996 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1997 Mac OS X platforms.
1998 (OS_INLINE): Undefine before definition.
1999 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2000 FontAssociation table in FOND resource.
2001 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2002 and fontSize at each entry of FontAssociation table in FOND
2003 resource.
2004 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2005 ffStylOff of FamilyRecord header of FOND resource, the header,
2006 fontSize, fontID at each entry of FontAssociation table, and
2007 StyleMapping table.
2008 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002009
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000020102006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2011
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002012 Public API of TrueTypeGX, OpenType, and classic kern table validator
2013 should return `FT_Err_Unimplemented_Feature' if validation service
2014 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002015 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002016 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2017
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002018 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2019 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2020 unavailable.
2021 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2022 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002023
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002024 * src/base/ftotval.c (FT_OpenType_Validate): Return
2025 FT_Err_Unimplemented_Feature if OpenType validation service is
2026 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002027
Werner Lembergb10e45a2006-06-08 07:32:56 +000020282006-06-08 Werner Lemberg <wl@gnu.org>
2029
2030 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2031 errors.
2032
David Turner5f1f7502006-06-07 05:11:50 +000020332006-06-07 David Turner <david@freetype.org>
2034
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002035 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2036 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2037 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002038
David Turner457b4a82006-06-06 08:14:14 +000020392006-06-06 David Turner <david@freetype.org>
2040
Werner Lemberg4836f952006-06-06 12:54:08 +00002041 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002042
Werner Lemberg4836f952006-06-06 12:54:08 +00002043 We change `ps_unicodes_init' so that it also takes a
2044 `free_glyph_name' callback to release the glyph names returned by
2045 `get_glyph_name'
2046
2047 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2048 Renamed to ...
2049 (PS_GetGlyphNameFunc): This.
2050 (PS_FreeGlyphNameFunc): New typedef.
2051 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2052
2053 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2054 argument.
2055 (cff_sid_free_glyph_name): New function.
2056 (cff_cmap_unicode_init): Updated.
2057
2058 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2059
2060 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2061 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002062
2063
David Turner09717352006-06-04 14:33:08 +000020642006-06-04 David Turner <david@freetype.org>
2065
Werner Lembergd724f202006-06-04 15:17:41 +00002066 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2067 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002068 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002069
Werner Lembergd724f202006-06-04 15:17:41 +00002070 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2071 of `face->num_glyphs' which missed the last glyph, due to
2072 the offset-by-1 computation, since the PFR format doesn't
2073 guarantee that glyph index 0 corresponds to the `missing
2074 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002075
Werner Lemberg33779662006-05-26 06:30:05 +000020762006-05-25 Werner Lemberg <wl@gnu.org>
2077
2078 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2079 `-no-undefined'. Reported by Christian Biesinger.
2080
Werner Lemberg24773d62006-05-20 08:53:13 +000020812006-05-19 Brian Weed <bw@imaginengine.com>
2082
2083 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2084 have debug information, and debug libraries use `C7 compatible'
2085 debug info.
2086
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000020872006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2088
Werner Lemberga6523a62006-05-20 08:47:01 +00002089 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002090 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002091
Werner Lemberga6523a62006-05-20 08:47:01 +00002092 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2093 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002094
2095 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002096 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002097
20982006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2099
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002100 * build/unix/configure.raw: Add a fallback to disable Carbon
2101 dependency, if configured with no options on Mac OS X.
2102
21032006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2104
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002105 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002106 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002107 the second part of Savannah bug #16590.
2108
Werner Lemberg545c4e52006-05-17 22:55:04 +000021092006-05-18 Werner Lemberg <wl@gnu.org>
2110
2111 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2112 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2113
David Turnerdc3ff312006-05-17 12:59:35 +000021142006-05-17 David Turner <david@freetype.org>
2115
Werner Lemberg545c4e52006-05-17 22:55:04 +00002116 This is a major patch used to drastically improve the performance of
2117 loading glyphs. This both speeds up loading the glyph vectors
2118 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002119
Werner Lemberg545c4e52006-05-17 22:55:04 +00002120 We now use inline assembler code with GCC to implement `FT_MulFix',
2121 which is probably the most important function related to the
2122 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002123
Werner Lemberg545c4e52006-05-17 22:55:04 +00002124 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002125
2126
Werner Lemberg545c4e52006-05-17 22:55:04 +00002127 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2128 `cursor' and `limit'.
2129
2130 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2131 New functions.
2132 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2133 [TEST]: Remove.
2134
2135 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2136 code.
2137
2138 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2139 `FT_ZERO'
2140 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2141 (af_glyph_hints_reload: Rewrite recognition of weak points.
2142
2143 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2144 constant values out of the loops.
2145
2146 * src/autofit/aftypes.h: Updated.
2147
2148 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2149
2150 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2151 product to get orientation.
2152
2153 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2154 (FT_Stream_OpenGzip): Use it to handle small files directly in
2155 memory.
2156
2157 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2158 Improve performance.
2159
2160 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2161 `limit'.
2162
2163 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2164 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2165 exceedingly large values of number of contours. Speed up by
2166 reducing the number of loops.
2167
2168 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2169
2170
2171 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2172 used to detect rogue clients from 4 to 16. This is to prevent some
2173 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2174 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002175
Werner Lembergde2d90a2006-05-17 08:54:30 +000021762007-05-17 Werner Lemberg <wl@gnu.org>
2177
2178 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002179 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002180
21812006-05-16 Werner Lemberg <wl@gnu.org>
2182
2183 * docs/PROBLEMS: Updated icl issues.
2184
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002185----------------------------------------------------------------------------
2186
Werner Lemberg42b63b22007-01-21 21:01:33 +00002187Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002188David Turner, Robert Wilhelm, and Werner Lemberg.
2189
2190This file is part of the FreeType project, and may only be used, modified,
2191and distributed under the terms of the FreeType project license,
2192LICENSE.TXT. By continuing to use, modify, or distribute this file you
2193indicate that you have read the license and understand and accept it
2194fully.
2195
2196
2197Local Variables:
2198version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002199coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002200End: