blob: 911ebc878f7ec7471244f908fc189a3f11e8e3b0 [file] [log] [blame]
Werner Lemberg88ab6382007-06-07 05:01:56 +000012007-06-07 Werner Lemberg <wl@gnu.org>
2
3 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
4 tt_sbit_decoder_load_image): Protect against integer overflows.
5
6
7 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
8 for `x_control' and `y_control'.
9
Werner Lemberg2a2dca62007-06-06 04:39:37 +0000102007-06-06 Werner Lemberg <wl@gnu.org>
11
12 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
13
Werner Lemberga8d65492007-06-06 04:47:49 +000014
15 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
16 FreeType error.
17
Werner Lemberg470210b2007-06-06 10:05:49 +000018
19 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
20 `font_count'.
21
22
23 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
24
25
26 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
27 `FT_Error'.
28 Check `fd_index'.
29 (cff_slot_load): Updated.
30 * src/cff/cffgload.h: Updated.
31
Werner Lemberg6c054752007-06-05 05:27:54 +0000322007-06-05 Werner Lemberg <wl@gnu.org>
33
34 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
35 (pfr_glyph_load_simple): Convert assertion into normal FreeType
36 error.
37 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000038 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
39 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000040
41 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
42
Werner Lembergf4bc3f42007-06-05 07:32:15 +000043
Werner Lemberg470210b2007-06-06 10:05:49 +000044 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +000045
Werner Lemberge5c14d92007-06-05 20:50:37 +000046
47 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
48 in case of parsing error.
49 (ps_parser_load_field): Updated.
50
51 * src/type1/t1load.c (parse_font_matrix): Updated.
52
Werner Lembergad18b362007-06-04 07:04:05 +0000532007-06-04 Werner Lemberg <wl@gnu.org>
54
55 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
56
57 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
58
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000592007-06-03 Werner Lemberg <wl@gnu.org>
60
Werner Lemberg99a320b2007-06-03 19:21:26 +000061 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
62 George Williams (with some modifications).
63
642007-06-03 Werner Lemberg <wl@gnu.org>
65
Werner Lemberg3d507fe2007-06-03 16:54:55 +000066 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
67 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
68 face == NULL. Suggested by Graham Asher.
69
Werner Lembergce280a22007-06-03 05:58:30 +0000702007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
71
72 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
73
Werner Lemberg5b591e42007-06-01 22:16:43 +0000742007-06-02 Werner Lemberg <wl@gnu.org>
75
76 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
77 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
78
79 * src/bdf/bdflib.c (bdf_load_font): Use them.
80
81 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
82
Werner Lembergb9933f42007-06-01 21:27:12 +0000832007-06-01 Werner Lemberg <wl@gnu.org>
84
85 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
86 (FTC_CMapCache_Lookup): Remove unused code.
87
Werner Lembergc793d902007-06-01 20:51:11 +0000882007-06-01 Sean McBride <sean@rogue-research.com>
89
90 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
91 unused.
92
Werner Lembergbebc7b12007-06-01 06:32:30 +0000932007-06-01 Werner Lemberg <wl@gnu.org>
94
95 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
96 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +000097 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +000098
Werner Lembergcb37b3b2007-06-01 06:49:03 +000099 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
100 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
101
Werner Lembergba03af62007-05-30 13:57:02 +00001022007-05-30 Werner Lemberg <wl@gnu.org>
103
104 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
105 against too small binary data strings.
106
107 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
108
David Turnerf0cd69c2007-05-28 15:42:09 +00001092007-05-28 David Turner <david@freetype.org>
110
Werner Lemberg99e0c182007-05-29 07:00:23 +0000111 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
112 transformation. This significantly reduces the loading time of CFF
113 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000114
Werner Lemberg99e0c182007-05-29 07:00:23 +0000115 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000116
Werner Lemberg99e0c182007-05-29 07:00:23 +0000117 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
118 hinting script to CJK, since it works well with more scripts than
119 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
120 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000121
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001222007-05-25 Werner Lemberg <wl@gnu.org>
123
124 * docs/CHANGES: Updated.
125
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001262007-05-24 Werner Lemberg <wl@gnu.org>
127
128 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
129 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
130
1312007-05-24 Graham Asher <graham.asher@btinternet.com>
132
133 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
134 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
135
David Turner0d0365e2007-05-22 09:53:44 +00001362007-05-22 David Turner <david@freetype.org>
137
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000138 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
139 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000140
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000141
142 Avoid heap blowup with very large .Z font files. This fixes
143 Savannah bug #19910.
144
145 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
146 `in_limit', `pad', `pad_bits', and `in_buff' members.
147 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
148 `buf_total' members.
149
150 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
151 only one argument.
152 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000153
1542007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000155
156 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
157 (ps_dimension_set_mask_bits): Remove `const'.
158
David Turner0d0365e2007-05-22 09:53:44 +00001592007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000160
161 * src/sfnt/ttmtx.c (tt_face_get_metrics)
162 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
163
Werner Lembergb826fa72007-05-19 07:18:48 +00001642007-05-19 Derek Clegg <dclegg@apple.com>
165
166 Savannah patch #5929.
167
168 * include/freetype/tttables.h, src/base/ftobjcs.c
169 (FT_Get_CMap_Format): New function.
170
171 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
172 `format' member.
173 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
174 cmap_info->format.
175
Werner Lemberg6f99c882007-05-19 07:01:49 +00001762007-05-19 Werner Lemberg <wl@gnu.org>
177
178 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
179 before handling subglyphs so that it can be reinitialized each time.
180 This fixes Savannah bug #19859.
181
Werner Lemberg95bc9d32007-05-16 15:19:42 +00001822007-05-16 Werner Lemberg <wl@gnu.org>
183
184 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
185 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
186 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
187 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
188 tt_face_get_metrics): Fix type-punning issues.
189
David Turner0a24bd22007-05-15 10:54:10 +00001902007-05-15 David Turner <david@freetype.org>
191
192 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000193 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
194 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000195 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000196 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000197
Werner Lemberg607dec72007-05-15 06:49:37 +00001982007-05-15 Graham Asher <graham.asher@btinternet.com>
199
200 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
201 variable.
202 * src/autofit/afloader.c (af_loader_load_g): Ditto.
203
204 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
205 (open_face_from_buffer): Initialize `stream'.
206 (FT_Request_Metrics): Remove unused variable.
207 Remove redundant `break' statements.
208 (FT_Get_Track_Kerning): Remove unused variable.
209
210 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
211 afm_parse_kern_data): Remove redundant
212 `break' statements.
213 (afm_parser_parse): Ditto.
214 Don't use uninitialized variables.
215
216 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
217 Use `|' operator instead of `^' to set it.
218 Update all users.
219
220 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
221 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
222
223 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
224 comparison.
225 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
226 (TT_Load_Glyph): Remove unused variable.
227
Werner Lemberg8d463a52007-05-13 16:01:55 +00002282007-05-13 Derek Clegg <dclegg@apple.com>
229
230 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
231 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
232
David Turner711cf842007-05-11 14:36:24 +00002332007-05-11 David Turner <david@freetype.org>
234
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000235 * src/cache/ftbasic.c, include/freetype/ftcache.h
236 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
237 functions that allow us to look up glyphs using an FTC_Scaler object
238 to specify the size, making it possible to use fractional pixel
239 sizes.
240
241 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
242 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000243
Werner Lemberg94be20e2007-05-09 20:02:55 +00002442007-05-09 Graham Asher <graham.asher@btinternet.com>
245
246 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
247 (af_latin_metrics_scale_dim): Fix compiler warnings.
248
Werner Lemberg41271032007-05-06 04:51:48 +00002492007-05-06 Werner Lemberg <wl@gnu.org>
250
251 * builds/win32/visualce/freetype.sln: Removed, as requested by
252 Vincent.
253
Werner Lembergdf49e692007-05-04 06:30:05 +00002542007-05-04 Vincent RICHOMME <richom.v@free.fr>
255
256 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
257 PC targets.
258
259 * docs/CHANGES: Document them.
260
2612007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000262
263 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
264 mmap (which might happen on some RTOS). From Savannah patch #5909.
265
Werner Lemberg106eaf12007-05-03 07:07:47 +00002662007-05-03 Werner Lemberg <wl@gnu.org>
267
268 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
269 * include/freetype/freetype.h (FT_Set_Char_Size): Update
270 documentation.
271
Werner Lemberg1b5267d2007-04-28 21:06:15 +00002722007-04-28 Victor Stinner <victor.stinner@inl.fr>
273
274 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
275 `cmap'.
276
Werner Lembergcc712a22007-04-27 17:16:50 +00002772007-04-27 Werner Lemberg <wl@gnu.org>
278
279 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
280 number of points in contours. Problem reported by Victor Stinner
281 <victor.stinner@haypocalc.com>.
282 (TT_Process_Simple_Glyph): Synchronize variable types.
283
Werner Lemberg45bb18f2007-04-26 06:26:35 +00002842007-04-26 Werner Lemberg <wl@gnu.org>
285
286 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
287 zero in case of error. This fixes Savannah bug #19689.
288
David Turnera8b45e62007-05-11 14:10:30 +00002892007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
290
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000291 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
292 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000293
Werner Lembergfcc1f472007-04-10 11:51:50 +00002942007-04-10 Martin Horak <horakm@centrum.cz>
295
296 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
297 Ignore `hhea' table. This fixes Savannah bug #19261.
298
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002992007-04-09 Werner Lemberg <wl@gnu.org>
300
301 * Version 2.3.4 released.
302 =========================
303
304
305 Tag sources with `VER-2-3-4'.
306
307 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
308 version number to 2.3.4.
309
310 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
311 builds/win32/visualc/freetype.dsp,
312 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
313
314 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
315
316 * builds/unix/configure.raw (version_info): Set to 9:15:3.
317
Werner Lembergf4a52a62007-04-09 08:40:11 +00003182007-04-09 Martin Horak <horakm@centrum.cz>
319
320 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
321 memory stream to avoid a crash with the incremental memory
322 interface (Savannah bug #19260).
323
David Turner1dcb4442007-04-06 08:19:04 +00003242007-04-06 David Turner <david@freetype.org>
325
Werner Lembergc81cf612007-04-06 09:28:23 +0000326 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
327 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000328
Werner Lemberg9f83e052007-04-05 02:28:23 +00003292007-04-04 Werner Lemberg <wl@gnu.org>
330
331 * Version 2.3.3 released.
332 =========================
333
334
335 Tag sources with `VER-2-3-3'.
336
337 * docs/CHANGES: Mention CVE-2007-1351.
338
David Turner7338ec22007-04-03 14:30:34 +00003392007-04-03 David Turner <david@freetype.org>
340
341 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000342 if one of the resolution values is 0, treat it as if it were the
343 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000344
David Turnere6472c12007-04-02 13:13:54 +00003452007-04-02 David Turner <david@freetype.org>
346
Werner Lemberg94f12272007-04-03 07:19:53 +0000347 Add special code to detect `extra-light' fonts and do not snap their
348 stem widths too much to avoid bizarre hinting effects.
349
350 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
351 `extra_light' members.
352
353 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
354 them.
355 (af_latin_metrics_scale_dim): Set `extra_light'.
356 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000357
David Turner3f539692007-03-28 14:53:40 +00003582007-03-28 David Turner <david@freetype.org>
359
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000360 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000361 padding.
362
Werner Lemberga08b2172007-03-28 07:17:17 +00003632007-03-28 Werner Lemberg <wl@gnu.org>
364
365 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
366 gracefully.
367 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000368 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000369 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
370 number of code points in Unicode.
371
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000372 * builds/win32/visualc/index.html,
373 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000374 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000375 s/232/233/.
376
377 * docs/CHANGES: Mention ftdiff.
378
David Turner3b242d32007-03-26 12:03:04 +00003792007-03-26 David Turner <david@freetype.org>
380
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000381 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
382 corresponding code.
383 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000384
Werner Lemberga08b2172007-03-28 07:17:17 +0000385 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000386 computations in order to ignore single-point contours. These are
387 never rasterized and correspond in certain fonts to mark-attach
388 points that are very far from the glyph's real outline, ruining the
389 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000390
Werner Lemberga08b2172007-03-28 07:17:17 +0000391 * src/autofit/afloader.c (af_loader_load_g): In the case of
392 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
393 Otherwise code that uses them will most certainly ruin the fixed
394 advance property.
David Turner23553d62007-03-26 13:37:17 +0000395
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000396 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
397 documentation and bump version number to 2.3.3.
398
399 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
400
401 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000402
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00004032007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
404
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000405 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
406 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000407 * builds/vms/ftconfig.h: Ditto.
408 * include/freetype/config/ftconfig.h: Ditto.
409
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004102007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
411
Werner Lemberg14ffe092007-03-22 06:12:43 +0000412 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
413 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000414 proposed by Sean McBride:
415 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
416
4172007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
418
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000419 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
420 setjmp, proposed by Sean McBride:
421 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
422
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004232007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
424
Werner Lembergc9f6c662007-03-21 13:30:14 +0000425 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
426 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
427 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000428
David Turner74c34eb2007-03-18 07:19:31 +00004292007-03-18 David Turner <david@freetype.org>
430
Werner Lembergc9f6c662007-03-21 13:30:14 +0000431 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
432 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000433
Werner Lembergc9f6c662007-03-21 13:30:14 +0000434 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000435
David Turner89020d92007-03-17 17:48:57 +00004362007-03-17 David Turner <david@freetype.org>
437
Werner Lembergc9f6c662007-03-21 13:30:14 +0000438 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
439 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000440
Werner Lemberg25d592a2007-03-09 07:59:35 +00004412007-03-09 Werner Lemberg <wl@gnu.org>
442
443 * Version 2.3.2 released.
444 =========================
445
446
447 Tag sources with `VER-2-3-2'.
448
449 * builds/win32/visualc/index.html,
450 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000451 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000452 s/231/232/.
453
David Turner3a51afa2007-03-08 10:50:38 +00004542007-03-08 David Turner <david@freetype.org>
455
Werner Lemberg25d592a2007-03-09 07:59:35 +0000456 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000457
Werner Lemberg25d592a2007-03-09 07:59:35 +0000458 * builds/unix/configure.raw (version_info): Set to 9:13:3.
459
460 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
461
462 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000463
Werner Lemberg1e259de2007-03-08 15:39:21 +0000464 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
465 function to work properly, over-writing user-provided buffers in
466 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000467
David Turner121cad52007-03-08 16:43:50 +0000468
Werner Lemberg3d92f082007-03-06 11:59:24 +00004692007-03-05 Werner Lemberg <wl@gnu.org>
470
471 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
472 macro for `strstr'.
473
474 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
475 `trick_names', as suggested by Ivan Nincic.
476
David Turner085bc6e2007-03-05 17:40:03 +00004772007-03-05 David Turner <david@freetype.org>
478
Werner Lembergd112cf02007-03-06 12:06:56 +0000479 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
480 case FT_Init_FreeType fails for some reason. Problem reported by
481 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000482
Werner Lembergd112cf02007-03-06 12:06:56 +0000483 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
484 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
485 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
486 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000487
Werner Lembergd112cf02007-03-06 12:06:56 +0000488 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
489 signed values, not unsigned ones. Problem reported by Johannes
490 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000491
David Turner601aefe2007-02-21 16:47:49 +00004922007-02-21 David Turner <david@freetype.org>
493
Werner Lembergde5e6862007-02-25 21:06:43 +0000494 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
495 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000496
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004972007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
498
499 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
500 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
501 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
502
Werner Lemberga0915172007-02-16 08:12:50 +00005032007-02-16 Werner Lemberg <wl@gnu.org>
504
505 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
506 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
507
David Turner2c4500e2007-02-14 15:08:47 +00005082007-02-14 David Turner <david@freetype.org>
509
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000510 It seems that the following changes fix most of the known
511 interpreter problems with my fonts, but more testing is needed,
512 though.
513
514 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
515 (TT_MulFix14): Rewrite.
516 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
517 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000518
Werner Lembergc6a14082007-02-12 22:08:15 +00005192007-02-12 Werner Lemberg <wl@gnu.org>
520
521 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
522 warnings.
523
524 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
525 (bdf_interpret_style): Ditto.
526
David Turnerc0f9c4a2007-02-12 14:55:03 +00005272007-02-12 David Turner <david@freetype.org>
528
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000529 Simplify projection and dual-projection code interface.
530
Werner Lemberg406d25f2007-02-12 22:01:18 +0000531 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
532 FT_Vector' as argument type.
533 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
534 Updated.
535 (CUR_fast_project, CUR_fast_dualproj): New macros.
536 (Project, Dual_Project, Project_x, Project_y): Updated.
537 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
538 macros.
539
540
541 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
542 adjustments for the non-light auto-hinted modes. Gets rid of
543 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000544
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000545 * src/autofit/aflatin.c (af_latin_hints_link_segments,
546 af_latin_hints_compute_edges): Slight optimization of the segment
547 linker and better handling of serif segments to get rid of broken
548 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000549
David Turnerc0f9c4a2007-02-12 14:55:03 +0000550
Werner Lemberg442bfb82007-02-12 21:44:10 +0000551 Introduce new string functions and the corresponding macros to get
552 rid of various uses of strcpy and other `evil' functions, as well as
553 to simplify a few things.
554
555 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
556 ft_mem_strcpyn): New declarations.
557 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
558 macros.
559 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
560 functions.
561
562 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
563 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
564 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
565 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
566 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
567 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
568 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
569 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000570
Werner Lemberg406d25f2007-02-12 22:01:18 +0000571 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
572
Werner Lemberg582067d2007-02-11 15:03:05 +00005732007-02-11 Werner Lemberg <wl@gnu.org>
574
575 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
576 non-spacing glyphs.
577
Werner Lemberg8f474532007-02-07 08:31:01 +00005782007-02-07 Tom Parker <palfrey@tevp.net>
579
580 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
581 pointer.
582
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005832007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
584
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000585 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
586 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000587 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000588 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
589 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
590 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
591 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000592
593 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
594 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000595 * builds/mac/ftmac.c: Ditto.
596
5972007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
598
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000599 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000600 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000601 #include <ftmac.c>.
602
6032007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
604
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000605 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
606 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
607 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
608 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
609 FT_GetFilePath_From_Mac_ATS_Name.
610 * builds/mac/ftmac.c: Ditto.
611
6122007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
613
Werner Lembergdcbb7082007-02-08 08:54:09 +0000614 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000615 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
616 for passing to FT_New_Face_From_FSSpec.
617
6182007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
619
Werner Lembergdcbb7082007-02-08 08:54:09 +0000620 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000621 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000622
623 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
624 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000625 * builds/mac/ftmac.c (OS_INLINE): Ditto.
626
Werner Lemberg313d7772007-02-01 08:10:45 +00006272007-02-01 Werner Lemberg <wl@gnu.org>
628
629 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
630 Explain why applications shouldn't use it. Found by Alexei.
631
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006322007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000633
634 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
635 message.
636
637 * src/gxvalid/gxvmort1.c
638 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
639 message.
640
Werner Lemberg53935932007-01-31 08:53:02 +00006412007-01-31 Werner Lemberg <wl@gnu.org>
642
643
644 * Version 2.3.1 released.
645 =========================
646
647
648 Tag sources with `VER-2-3-1-FINAL'.
649
650 * builds/win32/visualc/freetype.dsp,
651 builds/win32/visualc/freetype.vcproj: s/230/231/.
652 * builds/win32/visualc/index.html: s/221/231/.
653
654 * vms_make.com: Add `ftgasp'.
655
David Turnera7ee6082007-01-30 10:33:53 +00006562007-01-30 David Turner <david@freetype.org>
657
Werner Lemberg53935932007-01-31 08:53:02 +0000658 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000659
Werner Lemberg53935932007-01-31 08:53:02 +0000660 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000661
Werner Lemberg25d592a2007-03-09 07:59:35 +0000662 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000663 s/2.3.0/2.3.1/.
664
665 * builds/unix/configure.raw (version_info): Set to 9:12:3.
666
667
668 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
669 (af_loader_load_g): Disable the warper (i.e., the light hinting
670 improvements) to make a 2.3.1 bugfix release before introducing a
671 new feature. This should give us more time to tune and improve the
672 warper for the next release.
673
674 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000675
David Turnerd91eebd2007-01-26 15:05:41 +00006762007-01-25 David Turner <david@freetype.org>
677
Werner Lembergbf241762007-01-26 16:08:49 +0000678 For light auto-hinting, improve glyph advance widths and resurrect
679 normal/full hinting to its normal quality.
680
681 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
682 and `xmax_delta'.
683 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
684 and `xmax_delta'.
685
686 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
687 preprocessor conditional with if-clause, handling both light and
688 normal mode.
689
690 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
691 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000692
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00006932007-01-25 Werner Lemberg <wl@gnu.org>
694
695 * docs/release: Updated -- Savannah uses a new uploading scheme.
696
David Turnera42567b2007-01-25 12:23:37 +00006972007-01-25 David Turner <david@freetype.org>
698
Werner Lembergd7855662007-01-25 13:53:56 +0000699 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000700
Werner Lembergd7855662007-01-25 13:53:56 +0000701 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
702 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
703 functions.
David Turnera42567b2007-01-25 12:23:37 +0000704
Werner Lembergd7855662007-01-25 13:53:56 +0000705 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000706
Werner Lembergb1be9e82007-01-25 11:50:00 +00007072007-01-25 Werner Lemberg <wl@gnu.org>
708
709 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000710 correctly in a sanity check. Since this function is only used to
711 load local and global functions, any charstring that called the last
712 local/global function would fail otherwise. This fixes Savannah bug
713 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000714
715 * docs/CHANGES: Document it.
716
David Turnerb6de8d12007-01-23 15:51:50 +00007172007-01-23 David Turner <david@freetype.org>
718
Werner Lembergb1be9e82007-01-25 11:50:00 +0000719 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
720 prevented compilation when disabling both the unpatented and the
721 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000722
Werner Lembergb1be9e82007-01-25 11:50:00 +0000723
724 Fix and enable the warper to improve `light' hinting mode. This is
725 not necessarily a final version, but it seems to work well.
726
727 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
728 Disable code.
729 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
730 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
731
732 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
733 (af_warper_compute_line_best): Fix array size of `scores'.
734 (af_warper_compute): Better handling of border cases.
735 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
736 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000737
Werner Lemberg011d1112007-01-21 09:36:00 +00007382007-01-21 Werner Lemberg <wl@gnu.org>
739
Werner Lemberg42b63b22007-01-21 21:01:33 +0000740 * ChangeLog: Split off older entries into...
741 * ChangeLog.22: This new file.
742
7432007-01-21 Werner Lemberg <wl@gnu.org>
744
Werner Lemberg555258f2007-01-21 09:46:37 +0000745 * docs/CHANGES: Document SHZ fix.
746
7472007-01-21 George Williams <gww@silcom.com>
748
749 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
750 points.
751
7522007-01-21 Werner Lemberg <wl@gnu.org>
753
Werner Lemberg011d1112007-01-21 09:36:00 +0000754 * src/sfnt/ttmtx.c (tt_face_get_metrics)
755 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
756
Werner Lemberg87a5a432007-01-17 12:44:39 +00007572007-01-17 Werner Lemberg <wl@gnu.org>
758
Werner Lembergb8003292007-01-17 12:56:25 +0000759
760 * Version 2.3.0 released.
761 =========================
762
763
764 Tag sources with `VER-2-3-0-FINAL'.
765
7662007-01-17 Werner Lemberg <wl@gnu.org>
767
Werner Lemberg87a5a432007-01-17 12:44:39 +0000768 * docs/release: Updated.
769
David Turner22122722007-01-16 20:06:44 +00007702007-01-16 David Turner <david@freetype.org>
771
Werner Lemberg87a5a432007-01-17 12:44:39 +0000772 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
773 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
774 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
775 warnings.
David Turner22122722007-01-16 20:06:44 +0000776
Werner Lemberg267e1d72007-01-15 07:48:09 +00007772007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
778
779 * builds/amiga/makefile, builds/amiga/makefile.os4,
780 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
781
782 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
783
Werner Lemberg8c4120d2007-01-15 06:42:40 +00007842007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
785
786 Fix various compiler warnings.
787
788 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
789 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
790 s/index/strike_index/.
791 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
792
793 * src/gxvalid/gxvmorx5.c
794 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
795
796 * src/truetype/ttinterp.c (Compute_Point_Displacement),
797 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
798 uninitialized variables.
799
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008002007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
801
802 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
803
Werner Lemberg281c1482007-01-13 22:50:51 +00008042007-01-13 Werner Lemberg <wl@gnu.org>
805
806 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
807 versions up to 0x3FF without complaining.
808
Werner Lembergac250b22007-01-13 14:01:36 +00008092007-01-13 Derek Clegg <dclegg@apple.com>
810
811 Add FT_Get_PS_Font_Info interface to CFF driver.
812
813 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
814 (CFF_FontRec): Add `font_info' field.
815
816 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
817 (cff_font_done): Free font->font_info if necessary.
818
819 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
820 (cff_service_ps_info): Register cff_ps_get_font_info.
821
Werner Lemberg23df31a2007-01-13 08:45:00 +00008222007-01-13 Werner Lemberg <wl@gnu.org>
823
824 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
825 with C++ compiler.
826
827 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
828 af_glyph_hints_dump_edges): Ditto.
829
830 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
831 `modules.cfg').
832
833 * src/sfnt/ttsbit0.h: Remove.
834
835 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
836
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008372007-01-12 David Turner <david@freetype.org>
838
839 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
840 bug in the bitmap emboldener if the pitch of the source bitmap is
841 much larger than its width.
842
843 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
844 compilation warning.
845
Werner Lemberg6d96d312007-01-12 10:30:19 +00008462007-01-12 Werner Lemberg <wl@gnu.org>
847
848 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
849 `automake' CVS module from sources.redhat.com.
850
Werner Lemberg17432b52007-01-12 09:28:44 +00008512007-01-11 Werner Lemberg <wl@gnu.org>
852
853 * src/type1/t1load.c (is_space): Removed.
854 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
855 (parse_charstrings): Use IS_PS_TOKEN.
856
857
858 * autogen.sh: Avoid bash specific syntax.
859
David Turner038ace22007-01-11 15:00:59 +00008602007-01-11 David Turner <david@freetype.org>
861
Werner Lemberg17432b52007-01-12 09:28:44 +0000862 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000863
Werner Lemberg17432b52007-01-12 09:28:44 +0000864 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000865
Werner Lemberg17432b52007-01-12 09:28:44 +0000866 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
867 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000868 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000869
Werner Lemberg17432b52007-01-12 09:28:44 +0000870 * autogen.sh: Small fix to get it working on Mac OS X properly:
871 The issue is that GNU libtool is called `glibtool' on this platform,
872 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000873
David Turner2628ea92007-01-10 13:15:56 +00008742007-01-10 David Turner <david@freetype.org>
875
Werner Lemberg17432b52007-01-12 09:28:44 +0000876 * all-sources: Tag all sources with VER-2-3-0-RC1 and
877 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000878
Werner Lemberg17432b52007-01-12 09:28:44 +0000879 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
880 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
881 version number to 2.3.0.
882
883 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
884 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000885
886 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000887 include/freetype/ftlcdfil.h: Update reference documentation with
888 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000889
Werner Lemberg17432b52007-01-12 09:28:44 +0000890 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
891 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000892
Werner Lembergbf02d392007-01-10 07:07:37 +00008932007-01-10 Derek Clegg <dclegg@apple.com>
894
895 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
896 values.
897
David Turnerf48b60e2007-01-08 15:15:32 +00008982007-01-08 David Turner <david@freetype.org>
899
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000900 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000901
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000902 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
903 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000904 corresponding to a given character pixel size.
905
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000906 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
907 `gasp' table, in order to avoid potential problems with later
908 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000909
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000910 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
911 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000912
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000913 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
914 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
915 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
916 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000917
Werner Lemberge6b6f372007-01-07 00:06:47 +00009182007-01-07 Werner Lemberg <wl@gnu.org>
919
Werner Lembergb8004d22007-01-07 09:13:38 +0000920 * src/cid/cidparse.c (cid_parser_new): Improve error message for
921 Type 11 fonts.
922 Scan for `/sfnts' token.
923
9242007-01-07 Werner Lemberg <wl@gnu.org>
925
926 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000927
Werner Lembergbe5f7972007-01-06 07:51:48 +00009282007-01-06 Werner Lemberg <wl@gnu.org>
929
930 * src/cff/cffload.c (cff_index_init): Remove unused variable.
931 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
932
David Turnera8cf42b2007-01-04 16:46:46 +00009332007-01-04 David Turner <david@freetype.org>
934
Werner Lembergf6294392007-01-06 07:47:45 +0000935 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
936 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000937
Werner Lembergf6294392007-01-06 07:47:45 +0000938
939 Do not allocate interpreter-specific tables in memory if we are not
940 going to load glyphs with the bytecode interpreter anyway.
941
942 * src/truetype/ttgload.c (tt_loader_init): Load execution context
943 only if glyph is hinted.
944 Updated.
945 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
946 and `cvs_ready'.
947 Add `tt_size_ready_bytecode' declaration.
948 * src/truetype/ttobjs.c (tt_size_done_bytecode,
949 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
950 (tt_size_init): Move most code into `tt_size_init_bytecode'.
951 (tt_size_done): Move most code into `tt_size_done_bytecode'.
952 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000953
David Turner91a34022007-01-05 14:47:08 +0000954
Werner Lembergf6294392007-01-06 07:47:45 +0000955 Don't extract the metrics table from the SFNT font file. Instead,
956 reparse it on each glyph load. The runtime difference is not
957 noticeable, and it can save a lot of heap memory when memory-mapped
958 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000959
Werner Lembergf6294392007-01-06 07:47:45 +0000960 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
961 `horz_metrics_offset' and `vert_metrics_ofset'.
962 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
963 Updated.
964
965
966 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
967
968
969 Do not load the CFF index offsets into memory, since this wastes a
970 *lot* of heap memory with large Asian CFF fonts. There is no
971 significant performance loss.
972
973 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
974 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
975 `data_size'.
976 (CFF_CharsetRec): Add field `num_glyphs'.
977
978 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
979 cff_charset_cid_to_gindex): New functions.
980 (cff_new_index): Renamed to...
981 (cff_index_init): This. Update all callers.
982 Updated -- some code has been moved to `cff_index_load_offsets'.
983 (cff_done_index): Renamed to...
984 (cff_index_done): This. Update all callers.
985 (cff_index_get_pointers, cff_index_access_element): Updated to use
986 stream offsets.
987 (cff_charset_compute_cids): Set `num_glyphs' field.
988 (cff_encoding_load): Updated.
989
990 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000991
9922007-01-04 David Turner <david@freetype.org>
993
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000994 * docs/INSTALL.UNIX: Simplify some parts, add reference to
995 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000996
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000997 * README.CVS: Add common problem description and solution
998 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000999
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001000 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001001
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001002 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001003
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001004 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001005
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001006 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1007 (TWorker): This.
1008 Remove `count_table' and `memory'.
1009 Make `grays' a pointer.
1010 (TRaster): New structure.
1011 (count_table): New static array.
1012 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1013 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1014 ft_black_set_mode, ft_black_render): Updated.
1015 (ft_black_init): Don't initialize `count_table'.
1016 (ft_black_reset): Use the render pool. This saves about 6KB of
1017 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001018
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001019 * src/smooth/ftgrays.c (TRaster): Replaced with...
1020 (TWorker): This.
1021 Remove `memory'.
1022 (TRaster): New structure.
1023
1024 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1025 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1026 gray_render_span, gray_raster_render): Updated.
1027 (gray_raster_reset): Use the render pool. This saves about 6KB of
1028 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001029
David Turner8a6c44e2007-01-04 17:03:11 +00001030 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1031 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001032 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1033 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1034 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001035
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001036 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1037 Remove a typo that results in no hinting and a memory leak with some
1038 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001039
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001040 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001041 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001042 CFF_Faces in it. We need to close all faces before destroying the
1043 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001044
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010452007-01-02 Werner Lemberg <wl@gnu.org>
1046
1047 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1048 Remove compiler warning.
1049
David Turner9207e002007-01-02 16:58:13 +000010502007-01-02 David Turner <david@freetype.org>
1051
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001052 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001053
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000010542006-12-31 Masatake YAMATO <jet@gyve.org>
1055
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001056 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1057 function.
1058 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001059 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001060 `gxv_kern_subtable_fmt0_pairs_validate'.
1061
David Turner115b4422006-12-22 11:37:05 +000010622006-12-22 David Turner <david@freetype.org>
1063
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001064 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1065 warnings.
David Turner115b4422006-12-22 11:37:05 +00001066
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001067 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1068 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001069
Werner Lemberg4755bf72006-12-16 08:58:44 +000010702006-12-16 Anders Kaseorg <anders@kaseorg.com>
1071
1072 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1073 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1074
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010752006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1076
Werner Lemberg9b774e22007-01-16 06:11:27 +00001077 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001078 sync with the modification by Jens Claudius on 2006-08-22; cf.
1079 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 +00001080
10812006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1082
1083 * src/base/ftmac.c: Specialized for Mac OS X only.
1084 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1085 * builds/unix/configure.raw: Ditto. When explicit switches for
1086 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1087 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1088
10892006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1090
1091 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1092 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1093 instead of src/base/ftmac.c
1094 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1095 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1096 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1097 that cannot be built at present.
1098
10992006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1100
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001101 * src/base/ftobjs.c: Improvement of resource fork handler for
1102 POSIX, cf.
1103 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001104 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1105 format or .dfont, to simulate the face index number counted by ftmac.c.
1106 (IsMacResource): Return the number of scalable faces correctly.
1107
Werner Lembergec5b4502006-12-10 07:51:38 +000011082006-12-10 Werner Lemberg <wl@gnu.org>
1109
1110 * builds/toplevel.mk (version): Protect against `distclean' target.
1111
Werner Lembergb26b3142006-12-09 20:01:43 +000011122006-12-09 Werner Lemberg <wl@gnu.org>
1113
1114 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1115 or `type'.
1116
1117 * builds/freetype.mk (version): Extracted from freetype.h, using
1118 GNU make's built-in string functions.
1119 (refdoc): Use $(version) instead of static version number.
1120
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000011212006-12-08 Werner Lemberg <wl@gnu.org>
1122
1123 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1124
Werner Lemberg15c29502006-12-09 07:29:54 +000011252006-12-08 Vladimir Volovich <vvv@vsu.ru>
1126
1127 * src/tools/apinames (State): Remove final comma in structure -- xlc
1128 v5 under AIX 4.3 doesn't like this.
1129
David Turnerdbf3b432006-12-07 21:18:09 +000011302006-12-07 David Turner <david@freetype.org>
1131
Werner Lemberg256a3512006-12-08 06:49:33 +00001132 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1133 to the spacing of auto-fitted glyphs. This only impacts rare
1134 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001135
Werner Lemberg11171312006-12-03 09:43:40 +000011362006-12-03 Werner Lemberg <wl@gnu.org>
1137
1138 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1139
Werner Lemberg960ba592006-12-01 08:20:47 +000011402006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001141
Werner Lemberg960ba592006-12-01 08:20:47 +00001142 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1143 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1144 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001145
David Turner80658e52006-11-28 08:09:20 +00001146
Werner Lemberg960ba592006-12-01 08:20:47 +00001147 * include/freetype/ftxf86.h: Fix and extend comment so that it
1148 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001149
Werner Lemberg960ba592006-12-01 08:20:47 +00001150 * include/freetype/ftchapters.h: Add `font_format' section.
1151
1152
1153 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1154 to TOC in index page.
1155
11562006-11-28 David Turner <david@freetype.org>
1157
1158 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1159 trying to render into a zero-width/height bitmap, not an error code.
1160
1161 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1162
1163 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1164 ones instead.
1165
1166 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1167 variable.
David Turner80658e52006-11-28 08:09:20 +00001168
Werner Lemberg8636c292006-11-26 22:28:13 +000011692006-11-26 Pierre Hanser <hanser@club-internet.fr>
1170
1171 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1172
Werner Lemberg960ba592006-12-01 08:20:47 +000011732006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001174
Werner Lemberg960ba592006-12-01 08:20:47 +00001175 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1176 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1177 Add stubs to link the `ftgrid' test program when debugging is
1178 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001179
Werner Lemberg960ba592006-12-01 08:20:47 +000011802006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001181
1182 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001183 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1184
1185 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1186 Emit more sensible information.
1187
1188 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1189
1190 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1191 rounding of blue values.
1192 (af_latin_hints_compute_segments): Hint segment heights.
1193 (af_latin_hints_link_segments): Reduce `len_score' value.
1194 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1195 value and use `height' member for comparisons.
1196 (af_latin_hint_edges): Extend logging message.
1197 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001198
Werner Lemberg91959bf2006-11-22 10:36:55 +000011992006-11-22 Werner Lemberg <wl@gnu.org>
1200
1201 Fix Savannah bug #15553.
1202
1203 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1204 program after a change from mono to grayscaling (and vice versa).
1205 Use correct constant for comparison to get `exec->grayscale'.
1206
Werner Lemberg913a3652006-11-19 09:19:17 +000012072006-11-18 Werner Lemberg <wl@gnu.org>
1208
1209 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001210 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001211 This patch fixes Savannah bug #18301.
1212
1213 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1214 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1215 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1216 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1217 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1218 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1219 (FNT_Load_Glyph): Check validity of `glyph_index'.
1220
David Turner7bab6ae2006-11-13 11:25:06 +000012212006-11-13 David Turner <david@freetype.org>
1222
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001223 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1224 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001225
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001226 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1227 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1228 when building the library to change the default LCD filter to be
1229 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001230
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001231 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001232
David Turner8765c712006-11-10 16:49:42 +000012332006-11-10 David Turner <david@freetype.org>
1234
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001235 * src/smooth/ftsmooth.c: API change for the LCD
1236 filter. The FT_LcdFilter value is an enumeration describing which
1237 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1238 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1239 algorithm which produces strong color fringes for everything
1240 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001241
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001242 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1243 second parameter to an enum type.
1244
1245 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1246 (_ft_lcd_filter): Rename to...
1247 (_ft_lcd_filter_fir): This.
1248 Update parameters.
1249 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1250 (FT_Library_Set_LcdFilter): Update parameters.
1251 Handle new filter modes.
1252
1253 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1254 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1255 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1256 callback and update other fields.
1257
1258 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1259 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1260 Other minor improvements.
1261
1262 * src/autofit/aflatin.c: Various tiny improvements that drastically
1263 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1264 (af_latin_hints_compute_edges): Fix typo.
1265 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001266
David Turner4e9cc3c2006-11-09 16:31:52 +000012672006-11-09 David Turner <david@freetype.org>
1268
Werner Lemberg49c77a82006-11-09 21:51:57 +00001269 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1270 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001271
Werner Lemberg5e430892006-11-07 09:35:03 +000012722006-11-07 Zhe Su <james.su@gmail.com>
1273
1274 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1275 also.
1276
Werner Lemberg111b5ae2006-11-03 09:40:12 +000012772006-11-03 Werner Lemberg <wl@gnu.org>
1278
1279 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1280
David Turner40604742006-11-02 16:37:35 +000012812006-11-02 David Turner <david@freetype.org>
1282
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001283 Add a few tweaks to better handle serif fonts.
1284 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001285
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001286 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1287 segments that are less than 1.5 pixels high. This gets rid of
1288 *many* corner cases with serifs.
1289 (af_latin_align_linked_edge): Add logging message.
1290 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1291 Add logging messages.
1292 Handle AF_EDGE_FLAG flag specially.
1293
1294 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1295 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1296
1297 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1298 Update external declarations.
1299 (af_corner_orientation, af_corner_is_flat): Replaced by...
1300
1301 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1302 ft_corner_is_flat): These declarations.
1303
1304 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1305 Comment out. Replaced by...
1306
1307 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1308 These functions. Update all callers.
1309 (FT_Add64) [!FT_LONG64]: Simplify.
1310
1311 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1312 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1313 production of garbage by missing lots of segments.
1314
1315 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1316
1317 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1318 [AF_DEBUG]: Set _af_debug_hints.
1319
1320
1321 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1322 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1323 and ft_corner_orientation.
1324
1325
1326 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001327
Werner Lemberge88c5262006-10-24 05:46:26 +000013282006-10-24 Werner Lemberg <wl@gnu.org>
1329
1330 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1331
1332 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1333 as argument.
1334
David Turnera1861392006-10-23 16:00:59 +000013352006-10-23 Zhe Su <zsu@novell.com>
1336
Werner Lemberg715e96e2006-10-24 05:28:45 +00001337 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1338 better deal with broken Asian fonts with strange glyphs, having
1339 self-intersections and other peculiarities. The used algorithm is
1340 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001341
David Turnere140f142006-10-23 08:56:57 +000013422006-10-23 David Turner <david@freetype.org>
1343
Werner Lemberg715e96e2006-10-24 05:28:45 +00001344 Speed up the CFF font loader. With some large CFF fonts,
1345 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001346
Werner Lemberg715e96e2006-10-24 05:28:45 +00001347 * src/cff/cffload.c (cff_get_offset): Removed.
1348 (cff_new_index): Inline functionality of `cff_get_offset'.
1349 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1350 (cff_charset_done): Call `cff_charset_free_cids'.
1351 (cff_charset_load): Call `cff_charset_compute_cids'.
1352 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1353
1354 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1355 with FT_NEXT_XXX.
1356
1357
1358 Speed up the Postscript hinter, with more than 100% speed increase
1359 on my machine.
1360
1361 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1362 psh_corner_orientation): New functions.
1363 (psh_glyph_compute_inflections): Merge loops for efficiency.
1364 Use `psh_corner_orientation'.
1365 (psh_glyph_init): Use `psh_corner_is_flat'.
1366 (psh_hint_table_find_strong_point): Renamed to...
1367 (psh_hint_table_find_strong_points): This.
1368 Rewrite, adding argument to handle all points at once.
1369 Update all callers.
1370 (PSH_MAX_STRONG_INTERNAL): New macro.
1371 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001372
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013732006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1374
1375 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001376 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001377
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000013782006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1379
1380 * docs/INSTALL.CROSS: New document file for cross-building.
1381
1382 * builds/unix/configure.raw: Preliminary cross-building support.
1383 Find native C compiler and pass it by CC_BUILD, and
1384 find suffix for native executable and pass it by EXEEXT_BUILD.
1385 Also suffix for target executable is passed by EXEEXT.
1386
Werner Lembergb9e6d692006-10-15 08:58:40 +00001387 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1388 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001389 CC_BUILD and EXEEXT_BUILD.
1390
Werner Lembergb9e6d692006-10-15 08:58:40 +00001391 * builds/exports.mk (APINAMES_EXE): Change the extension for
1392 apinames from the suffix for target (E) to that for building host
1393 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001394
Werner Lemberg82a07e92006-10-12 06:20:44 +000013952006-10-12 Werner Lemberg <wl@gnu.org>
1396
1397 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1398 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1399 which reference those files.
1400
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014012006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1402
Werner Lembergb9e6d692006-10-15 08:58:40 +00001403 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1404 embedded in freetype2.pc and freetype-config. Use it to record
1405 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001406
1407 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1408
1409 * builds/unix/freetype-config.in: Ditto.
1410
Werner Lemberg28e17d92006-10-11 17:27:47 +000014112006-10-11 Werner Lemberg <wl@gnu.org>
1412
1413 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1414 development.
1415
Jens Claudius336d2292006-10-03 08:53:37 +000014162006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1417
1418 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1419 argument to ft_setjmp.
1420
1421 * include/freetype/internal/ftvalid.h: Add comment that
1422 ft_validator_run must not be used.
1423
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014242006-10-01 Werner Lemberg <wl@gnu.org>
1425
1426 * src/base/ftbase.c: Undo change from 2006-09-30.
1427
1428 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1429
14302006-09-30 David Turner <david@freetype.org>
1431
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001432 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1433 s/unpatented_hinting/ignore_unpatented_hinter/.
1434 Update all callers.
1435
1436 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1437 auto-hinting shall be used or not.
1438
1439 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001440
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014412006-09-30 Werner Lemberg <wl@gnu.org>
1442
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001443 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1444 in use).
1445
1446 * src/base/ftbase.c: Include `ftlcdfil.c'.
1447
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014482006-09-29 Werner Lemberg <wl@gnu.org>
1449
1450 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1451 overlapping segments. Bug reported by Stefan Koch.
1452
David Turnerad830712006-09-27 16:20:59 +000014532006-09-28 David Turner <david@freetype.org>
1454
Werner Lemberg2c002e12006-09-29 21:31:53 +00001455 Fix a bug in the automatic unpatented hinting support which prevents
1456 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001457
Werner Lemberg2c002e12006-09-29 21:31:53 +00001458 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1459 s/force_autohint/unpatented_hinting/. Update all callers.
1460
1461 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1462
1463 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001464
David Turner8a317cf2006-09-27 07:52:48 +000014652006-09-27 David Turner <david@freetype.org>
1466
Werner Lemberg2c002e12006-09-29 21:31:53 +00001467 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001468
David Turner8a317cf2006-09-27 07:52:48 +00001469
David Turnere140f142006-10-23 08:56:57 +00001470 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001471 In a default build, the function `FT_Library_SetLcdFilter' returns
1472 `FT_Err_Unimplemented_Feature'; you need to #define
1473 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1474 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001475
Werner Lemberg2c002e12006-09-29 21:31:53 +00001476 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001477
Werner Lemberg2c002e12006-09-29 21:31:53 +00001478 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1479 typedef.
1480 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1481 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001482
Werner Lemberg2c002e12006-09-29 21:31:53 +00001483 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1484 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001485
Werner Lemberg2c002e12006-09-29 21:31:53 +00001486 Handle subpixel rendering.
1487 Simplify function.
1488 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1489 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1490
1491 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1492 pointing to <freetype/ftlcdfil.h>.
1493
1494 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1495 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1496
1497 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001498
Werner Lemberge20df4a2006-09-27 06:29:21 +000014992006-09-26 David Bustin
1500
1501 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1502 correctly. Reported as Savannah bug #17843.
1503
David Turner6f8c6222006-09-26 15:42:44 +000015042006-09-26 David Turner <david@freetype.org>
1505
Werner Lemberg110246c2006-09-26 21:55:44 +00001506 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1507 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1508 horizontal and vertical hinting for the purpose of debugging the
1509 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001510
Werner Lemberg110246c2006-09-26 21:55:44 +00001511 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1512 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001513
Werner Lemberg110246c2006-09-26 21:55:44 +00001514 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1515
1516 * include/freetype/config/ftoption.h, devel/ftoption.h
1517 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1518 we want to compile LCD-optimized rendering code (à la ClearType) or
1519 not. The macro *must* be disabled in default builds of the library
1520 for patent reasons.
1521
1522 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1523 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1524 isn't defined at compile time. This only changes the content of the
1525 rendered glyph to match the one of normal gray-level rendering,
1526 hence clients should not need to be modified.
1527
1528 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001529
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015302006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1531
1532 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1533 LWFN fails and both are available.
1534
David Turnerf3050052006-09-11 12:00:32 +000015352006-09-11 David Turner <david@freetype.org>
1536
Werner Lembergf9644552006-09-12 13:48:10 +00001537 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1538 report their English names through an Apple Roman
1539 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001540
Werner Lembergf9644552006-09-12 13:48:10 +00001541 If the font uses another name entry with language_id == English, it
1542 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001543
Werner Lembergf9644552006-09-12 13:48:10 +00001544 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1545 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001546
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015472006-09-05 Werner Lemberg <wl@gnu.org>
1548
1549 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001550 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001551 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1552 `HAN NOM B.ttf').
1553
1554 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1555
David Turner772e55d2006-09-05 09:45:15 +000015562006-09-05 David Turner <david@freetype.org>
1557
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001558 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001559
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001560 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1561 (TRaster): Remove `count_ex' and `count_ey'.
1562 (gray_find_cell): Remove 2nd and 3rd argument.
1563 (gray_alloc_cell): Merged with `gray_find_cell'.
1564 (gray_record_cell): Simplify.
1565 (gray_set_cell): Rewrite.
1566 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1567 (gray_render_span): Don't use FT_MEM_SET for small values.
1568 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1569 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1570 bitmap scanline.
1571 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001572
David Turneraa557a92006-09-04 16:42:44 +000015732006-09-04 David Turner <david@freetype.org>
1574
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001575 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1576 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001577
Werner Lemberg2d8629b2006-09-03 06:18:45 +000015782006-09-03 Werner Lemberg <wl@gnu.org>
1579
1580 * devel/ftoption.h: Synchronize with
1581 include/freetype/config/ftoption.h.
1582
1583 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1584 variable declaration.
1585 (gray_convert_glyph): Fix compiler warnings.
1586
David Turner6d79f212006-09-01 14:09:35 +000015872006-09-01 David Turner <david@freetype.org>
1588
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001589 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1590 to recognize a few fonts that require the automatic unpatented
1591 loader.
David Turnerbd502952006-09-01 19:05:24 +00001592
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001593 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1594 rasterizer. The speed improvement is between 15% and 25%, depending
1595 on the font data.
1596
1597 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1598 (TCell): Redefine.
1599 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1600 (gray_init_cells): Updated.
1601 (gray_find_cell, gray_alloc_cell): New functions.
1602 (gray_record_cell): Rewritten to use `gray_find_cell' and
1603 `gray_alloc_cell'.
1604 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1605 QSORT_THRESHOLD):
1606 Removed.
1607 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1608 gray_dump_cells): Removed.
1609 (gray_sweep): Rewritten.
1610 (gray_convert_glyph): Rewrite code which used one of the sorting
1611 functions.
1612 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001613
Werner Lembergd898aed2006-08-29 09:50:34 +000016142006-08-29 Dr. Werner Fink <werner@suse.de>
1615
1616 * configure: Make it possible to handle configure options which
1617 have strings containing spaces.
1618
16192006-08-27 David Turner <david@freetype.org>
1620
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001621 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1622 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1623 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1624
1625 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1626 src/truetype/truetype.c, src/truetype/ttdriver.c,
1627 src/truetype/ttgload.c, src/truetype/ttgload.h,
1628 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1629 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1630 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1631
1632 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1633 member `force_autohint'.
1634
1635 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1636
1637 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1638 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001639
Jens Claudiusa787f452006-08-27 11:26:18 +000016402006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1641
1642 Fix miscellaneous compiler warnings.
1643
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001644 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1645 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001646
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001647 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1648 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1649 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001650
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001651 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1652 volatileness of argument to ft_longjmp. Spotted by Werner
1653 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001654
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001655 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1656 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001657
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001658 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1659 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001660
Werner Lembergc4c35b72006-08-27 08:03:46 +000016612006-08-27 Werner Lemberg <wl@gnu.org>
1662
1663 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1664 Reported by Jens.
1665
Jens Claudius088e44e2006-08-22 14:24:30 +000016662006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001667
Jens Claudius088e44e2006-08-22 14:24:30 +00001668 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001669 about addresses of volatile objects passed as function arguments as
1670 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001671
Werner Lembergc4c35b72006-08-27 08:03:46 +00001672 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1673 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001674
1675 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1676 argument `table' a pointer to a volatile object.
1677
1678 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1679 argument `table' a pointer to a volatile object.
1680
Jens Claudius2652bd52006-08-18 17:20:37 +000016812006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1682
1683 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1684 variable `_sfnt' as volatile since it must keep its value across
1685 a call to ft_setjmp.
1686 (gxv_validate): Same for local variables `memory' and `valid'.
1687 (classic_kern_validate): Same for local variables `memory',
1688 `ckern', and `valid'.
1689
1690 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1691 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1692 `jstf', and 'valid'.
1693
1694 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1695 local variable `cmap'.
1696
David Turner9fbfc6a2006-08-16 09:11:31 +000016972006-08-16 David Turner <david@freetype.org>
1698
Werner Lemberg12342992006-08-19 11:18:09 +00001699 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1700 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001701
Werner Lemberg12342992006-08-19 11:18:09 +00001702 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1703 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001704
David Turner33f5f242006-08-16 16:50:55 +00001705
Werner Lemberg12342992006-08-19 11:18:09 +00001706 Improvements to native TrueType hinting. This is a first try,
1707 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1708
1709 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1710 `extra_points2'.
1711
1712 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1713 `orus'.
1714
1715 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1716 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1717 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1718 handle `extra_points2'.
1719
1720 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1721 Remove compiler warning.
1722 (cur_to_arg): Remove macro.
1723 (TT_Hint_Glyph): Updated.
1724 (TT_Process_Simple_Glyph): Handle `orus'.
1725
1726 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1727 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1728 (LOC_Ins_IUP): Renamed to...
1729 (IUP_WorkerRec): This.
1730 Add `orus' member.
1731 (Shift): Renamed to...
1732 (_iup_worker_shift): This.
1733 Updated.
1734 (Interp): Renamed to...
1735 (_iup_worker_interpolate): This.
1736 Updated to handle `orus'.
1737 (Ins_IUP): Updated.
1738
1739 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1740 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001741
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017422006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1743
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001744 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001745 build ftvalid in ft2demos. This has been inadvertedly changed
1746 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001747
17482006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1749
Werner Lemberg12342992006-08-19 11:18:09 +00001750 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1751 Jens:
1752 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001753
Werner Lemberg12342992006-08-19 11:18:09 +00001754 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1755 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001756
1757 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1758
Jens Claudius9950adc2006-08-13 12:14:36 +000017592006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1760
Werner Lemberg12342992006-08-19 11:18:09 +00001761 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1762 T1_TOKEN_TYPE_KEY.
1763 (T1_FieldRec): Add `dict'.
1764 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1765 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1766 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001767
Werner Lemberg12342992006-08-19 11:18:09 +00001768 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1769 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001770
1771 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1772
1773 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001774 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1775 not T1_TOKEN_TYPE_ANY.
1776 (ps_parser_load_field): Make sure a token that should be a string or
1777 name is really a string or name.
1778 Avoid memory leak if a keyword has been already encountered and its
1779 value is overwritten.
1780 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1781 T1_FIELD_XXX.
1782 (parse_dict): Ignore keywords that occur in the wrong dictionary
1783 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001784
Werner Lemberg12342992006-08-19 11:18:09 +00001785 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1786 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001787
Werner Lemberg12342992006-08-19 11:18:09 +00001788 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1789 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001790
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000017912006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1792
1793 Move creation of field `buildchar' of T1_DecoderRec out of
1794 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1795 of it.
1796
1797 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1798 and `T1_Compute_Max_Advance'.
1799
1800 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1801 Remove field `face', add `len_buildchar'.
1802
1803 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1804 field `buildchar'.
1805
1806 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1807 finisher for T1_Decoder.
1808 (cid_slot_load_glyph): Do not ignore failure when initializing the
1809 T1_Decoder.
1810
1811 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1812 Updated.
1813 (t1_decoder_init): Remove initialization of fields `buildchar' and
1814 `len_buildchar'.
1815 (t1_decoder_done): Remove deallocation of field `buildchar'.
1816
1817 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1818 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1819 T1_Decoder.
1820 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1821 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1822 case of error.
1823
1824 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1825 `buildchar' of T1_FaceRec.
1826
1827 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1828 `buildchar' of T1_FaceRec.
1829
Werner Lemberg1a380e02006-07-14 18:28:08 +000018302006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1831
1832 * freetype2/include/freetype/internal/psaux.h: New macros
1833 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1834 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1835 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1836 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1837 (T1_DecoderRec): New fields `buildchar' and `face'.
1838 (IS_PS_TOKEN): New macro.
1839
1840 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1841 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1842
1843 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1844 `default_design_vector' and `num_default_design_vector'.
1845
1846 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1847 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1848 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1849
1850 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1851 `token' argument to be NULL if we want only to count the number of
1852 tokens.
1853 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1854 want to skip the array.
1855 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1856 want to skip the array.
1857
1858 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1859 support for (partially commented out) othersubrs 19-25, 27, and 28.
1860 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1861 (t1_decoder_done): Release new field `buildchar'.
1862
1863 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1864 functions.
1865 (t1_keywords): Register them.
1866 (t1_allocate_blend): Updated.
1867 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1868 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1869 (parse_dict): Remove `keyword_flags' argument.
1870 Use new macro IS_PS_TOKEN.
1871 Changed function so that later PostScript definitions override
1872 earlier ones.
1873 (t1_init_loader): Initialize new field `keywords_encountered'.
1874 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1875 `len_buildchar'.
1876 Remove `keywords_flags'.
1877
1878 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1879 `keywords_encountered'.
1880 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1881
1882 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1883 New entries for parsing /NDV, /CDV, and /DesignVector.
1884
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000018852006-07-07 Werner Lemberg <wl@gnu.org>
1886
1887 Add many checks to protect against malformed PCF files.
1888
1889 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1890 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1891
1892 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1893 data and check that tables don't overlap (using a simple
1894 bubblesort).
1895 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1896 New macros which give the size of data structures in the data
1897 stream.
1898 (pcf_get_properties): Use rough estimates to get array size limits.
1899 Assign `face->nprops' and `face->properties' earlier so that a call
1900 to PCF_Face_Done can do the clean-up in case of error.
1901 Protect against invalid string offsets.
1902 (pcf_get_metrics): Clean up code.
1903 Adjust tracing message levels.
1904 Use rough estimate to get array size limit.
1905 (pcf_get_bitmaps): Clean up code.
1906 Adjust tracing message levels.
1907 Use rough estimates to get offset limits.
1908 (pcf_get_encodings): Adjust tracing message level.
1909 (pcf_get_accel): Clean up code.
1910
Werner Lemberg8eb05252006-06-27 06:20:01 +000019112006-06-26 Werner Lemberg <wl@gnu.org>
1912
1913 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1914 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1915
Werner Lemberg24703f82006-06-26 19:12:51 +000019162006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1917
1918 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1919 (t1_decoder_parse_charstrings): Operator with
1920 opcode 15 pops its two arguments.
1921 Handle the case where the pops of an othersubr may be part of a
1922 subroutine.
1923 Handle unknown othersubrs gracefully: count their operands and let
1924 the following pop operators push the operands as the results onto
1925 the Type1 stack.
1926 Improve handling of setcurrentpoint opcode.
1927
Werner Lembergc011f4c2006-06-26 09:40:00 +000019282006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1929
1930 The Type 1 parser now skips over top-level procedures as required
1931 for a `Simplified Parser'. This makes the parser more robust as it
1932 doesn't poke around in PostScript code. Additionally, it makes the
1933 FontDirectory hackery in src/type1/t1load.c unnecessary.
1934
1935 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1936 (skip_literal_string): Add FT_Error as return value.
1937 Handle escapes better.
1938 (skip_string): Add FT_Error as return value.
1939 Don't set `parser->error' but return error code directly.
1940 (skip_procedure): New function.
1941 (ps_parser_skip_PS_token): Handle procedures.
1942 Update code.
1943 (ps_parser_to_token): Update code.
1944 (ps_parser_load_field_table): Handle bbox entries also.
1945
1946 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1947 Add commented-out code for synthetic fonts.
1948
Werner Lemberga2da05c2006-06-25 06:27:27 +000019492006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1950
1951 Fix two hinting bugs as reported in
1952 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1953
1954 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1955 `first_point' member.
1956
1957 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1958 `first_point'.
1959 (TT_Process_Composite_Glyph): Always untouch points.
1960
1961 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1962 `first_point' and `last_point' in case of composite glyphs.
1963 (Ins_IUP): Fix computation of `end_point'.
1964
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000019652006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1966
Werner Lembergef3d2c22006-06-25 06:07:14 +00001967 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1968 Mac. The original patch was written by David Sachitano and Lawrence
1969 Coopet, and modified by Sean McBride for MPW compatibility. Only
1970 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001971
Werner Lembergef3d2c22006-06-25 06:07:14 +00001972 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1973 Mac OS X platforms.
1974 (OS_INLINE): Undefine before definition.
1975 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1976 FontAssociation table in FOND resource.
1977 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1978 and fontSize at each entry of FontAssociation table in FOND
1979 resource.
1980 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1981 ffStylOff of FamilyRecord header of FOND resource, the header,
1982 fontSize, fontID at each entry of FontAssociation table, and
1983 StyleMapping table.
1984 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001985
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000019862006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1987
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001988 Public API of TrueTypeGX, OpenType, and classic kern table validator
1989 should return `FT_Err_Unimplemented_Feature' if validation service
1990 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001991 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001992 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1993
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001994 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1995 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1996 unavailable.
1997 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1998 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001999
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002000 * src/base/ftotval.c (FT_OpenType_Validate): Return
2001 FT_Err_Unimplemented_Feature if OpenType validation service is
2002 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002003
Werner Lembergb10e45a2006-06-08 07:32:56 +000020042006-06-08 Werner Lemberg <wl@gnu.org>
2005
2006 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2007 errors.
2008
David Turner5f1f7502006-06-07 05:11:50 +000020092006-06-07 David Turner <david@freetype.org>
2010
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002011 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2012 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2013 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002014
David Turner457b4a82006-06-06 08:14:14 +000020152006-06-06 David Turner <david@freetype.org>
2016
Werner Lemberg4836f952006-06-06 12:54:08 +00002017 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002018
Werner Lemberg4836f952006-06-06 12:54:08 +00002019 We change `ps_unicodes_init' so that it also takes a
2020 `free_glyph_name' callback to release the glyph names returned by
2021 `get_glyph_name'
2022
2023 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2024 Renamed to ...
2025 (PS_GetGlyphNameFunc): This.
2026 (PS_FreeGlyphNameFunc): New typedef.
2027 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2028
2029 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2030 argument.
2031 (cff_sid_free_glyph_name): New function.
2032 (cff_cmap_unicode_init): Updated.
2033
2034 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2035
2036 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2037 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002038
2039
David Turner09717352006-06-04 14:33:08 +000020402006-06-04 David Turner <david@freetype.org>
2041
Werner Lembergd724f202006-06-04 15:17:41 +00002042 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2043 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002044 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002045
Werner Lembergd724f202006-06-04 15:17:41 +00002046 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2047 of `face->num_glyphs' which missed the last glyph, due to
2048 the offset-by-1 computation, since the PFR format doesn't
2049 guarantee that glyph index 0 corresponds to the `missing
2050 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002051
Werner Lemberg33779662006-05-26 06:30:05 +000020522006-05-25 Werner Lemberg <wl@gnu.org>
2053
2054 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2055 `-no-undefined'. Reported by Christian Biesinger.
2056
Werner Lemberg24773d62006-05-20 08:53:13 +000020572006-05-19 Brian Weed <bw@imaginengine.com>
2058
2059 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2060 have debug information, and debug libraries use `C7 compatible'
2061 debug info.
2062
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000020632006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2064
Werner Lemberga6523a62006-05-20 08:47:01 +00002065 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002066 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002067
Werner Lemberga6523a62006-05-20 08:47:01 +00002068 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2069 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002070
2071 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002072 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002073
20742006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2075
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002076 * build/unix/configure.raw: Add a fallback to disable Carbon
2077 dependency, if configured with no options on Mac OS X.
2078
20792006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2080
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002081 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002082 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002083 the second part of Savannah bug #16590.
2084
Werner Lemberg545c4e52006-05-17 22:55:04 +000020852006-05-18 Werner Lemberg <wl@gnu.org>
2086
2087 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2088 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2089
David Turnerdc3ff312006-05-17 12:59:35 +000020902006-05-17 David Turner <david@freetype.org>
2091
Werner Lemberg545c4e52006-05-17 22:55:04 +00002092 This is a major patch used to drastically improve the performance of
2093 loading glyphs. This both speeds up loading the glyph vectors
2094 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002095
Werner Lemberg545c4e52006-05-17 22:55:04 +00002096 We now use inline assembler code with GCC to implement `FT_MulFix',
2097 which is probably the most important function related to the
2098 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002099
Werner Lemberg545c4e52006-05-17 22:55:04 +00002100 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002101
2102
Werner Lemberg545c4e52006-05-17 22:55:04 +00002103 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2104 `cursor' and `limit'.
2105
2106 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2107 New functions.
2108 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2109 [TEST]: Remove.
2110
2111 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2112 code.
2113
2114 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2115 `FT_ZERO'
2116 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2117 (af_glyph_hints_reload: Rewrite recognition of weak points.
2118
2119 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2120 constant values out of the loops.
2121
2122 * src/autofit/aftypes.h: Updated.
2123
2124 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2125
2126 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2127 product to get orientation.
2128
2129 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2130 (FT_Stream_OpenGzip): Use it to handle small files directly in
2131 memory.
2132
2133 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2134 Improve performance.
2135
2136 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2137 `limit'.
2138
2139 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2140 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2141 exceedingly large values of number of contours. Speed up by
2142 reducing the number of loops.
2143
2144 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2145
2146
2147 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2148 used to detect rogue clients from 4 to 16. This is to prevent some
2149 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2150 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002151
Werner Lembergde2d90a2006-05-17 08:54:30 +000021522007-05-17 Werner Lemberg <wl@gnu.org>
2153
2154 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002155 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002156
21572006-05-16 Werner Lemberg <wl@gnu.org>
2158
2159 * docs/PROBLEMS: Updated icl issues.
2160
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002161----------------------------------------------------------------------------
2162
Werner Lemberg42b63b22007-01-21 21:01:33 +00002163Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002164David Turner, Robert Wilhelm, and Werner Lemberg.
2165
2166This file is part of the FreeType project, and may only be used, modified,
2167and distributed under the terms of the FreeType project license,
2168LICENSE.TXT. By continuing to use, modify, or distribute this file you
2169indicate that you have read the license and understand and accept it
2170fully.
2171
2172
2173Local Variables:
2174version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002175coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002176End: