blob: 56dd24d69d1fa02bd108c3957582610078ef89a2 [file] [log] [blame]
Werner Lembergf6c120f2007-06-11 04:55:58 +000012007-06-11 Werner Lemberg <wl@gnu.org>
2
3 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents).
4
David Turner84c6f882007-06-10 20:51:04 +000052007-06-10 David Turner <david@freetype.org>
6
Werner Lembergf6c120f2007-06-11 04:55:58 +00007 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
8 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +00009
Werner Lembergf6c120f2007-06-11 04:55:58 +000010 * include/freetype/config/ftoption.h: Clarify documentation
11 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +000012
Werner Lembergf6c120f2007-06-11 04:55:58 +000013
14 Add new `FT_Face_CheckTrueTypePatents' API.
15
16 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
17 declaration.
18
19 * include/freetype/internal/services/svttglyf.h,
20 src/base/ftpatent.c: New files.
21
22 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
23 New macro.
24
25 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
26 `ttpload.h'.
27 (tt_service_truetype_glyf): New service structure.
28 (tt_services): Register it.
29
30 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
31 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +000032
Werner Lemberg33db39e2007-06-08 06:30:29 +0000332007-06-08 Werner Lemberg <wl@gnu.org>
34
David Turner84c6f882007-06-10 20:51:04 +000035 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +000036 Fonts without a cmap must be handled correctly by FreeType (anything
37 else would be a bug).
38
39
40 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
41 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
42
Werner Lemberg88ab6382007-06-07 05:01:56 +0000432007-06-07 Werner Lemberg <wl@gnu.org>
44
45 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
46 tt_sbit_decoder_load_image): Protect against integer overflows.
47
48
49 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
50 for `x_control' and `y_control'.
51
Werner Lemberg2a2dca62007-06-06 04:39:37 +0000522007-06-06 Werner Lemberg <wl@gnu.org>
53
54 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
55
Werner Lemberga8d65492007-06-06 04:47:49 +000056
57 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
58 FreeType error.
59
Werner Lemberg470210b2007-06-06 10:05:49 +000060
61 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
62 `font_count'.
63
64
65 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
66
67
68 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
69 `FT_Error'.
70 Check `fd_index'.
71 (cff_slot_load): Updated.
72 * src/cff/cffgload.h: Updated.
73
Werner Lemberg6c054752007-06-05 05:27:54 +0000742007-06-05 Werner Lemberg <wl@gnu.org>
75
76 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
77 (pfr_glyph_load_simple): Convert assertion into normal FreeType
78 error.
79 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000080 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
81 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000082
83 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
84
Werner Lembergf4bc3f42007-06-05 07:32:15 +000085
Werner Lemberg470210b2007-06-06 10:05:49 +000086 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +000087
Werner Lemberge5c14d92007-06-05 20:50:37 +000088
89 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
90 in case of parsing error.
91 (ps_parser_load_field): Updated.
92
93 * src/type1/t1load.c (parse_font_matrix): Updated.
94
Werner Lembergad18b362007-06-04 07:04:05 +0000952007-06-04 Werner Lemberg <wl@gnu.org>
96
97 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
98
99 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
100
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001012007-06-03 Werner Lemberg <wl@gnu.org>
102
Werner Lemberg99a320b2007-06-03 19:21:26 +0000103 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
104 George Williams (with some modifications).
105
1062007-06-03 Werner Lemberg <wl@gnu.org>
107
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000108 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
109 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
110 face == NULL. Suggested by Graham Asher.
111
Werner Lembergce280a22007-06-03 05:58:30 +00001122007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
113
114 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
115
Werner Lemberg5b591e42007-06-01 22:16:43 +00001162007-06-02 Werner Lemberg <wl@gnu.org>
117
118 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
119 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
120
121 * src/bdf/bdflib.c (bdf_load_font): Use them.
122
123 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
124
Werner Lembergb9933f42007-06-01 21:27:12 +00001252007-06-01 Werner Lemberg <wl@gnu.org>
126
127 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
128 (FTC_CMapCache_Lookup): Remove unused code.
129
Werner Lembergc793d902007-06-01 20:51:11 +00001302007-06-01 Sean McBride <sean@rogue-research.com>
131
132 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
133 unused.
134
Werner Lembergbebc7b12007-06-01 06:32:30 +00001352007-06-01 Werner Lemberg <wl@gnu.org>
136
137 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
138 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000139 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000140
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000141 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
142 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
143
Werner Lembergba03af62007-05-30 13:57:02 +00001442007-05-30 Werner Lemberg <wl@gnu.org>
145
146 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
147 against too small binary data strings.
148
149 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
150
David Turnerf0cd69c2007-05-28 15:42:09 +00001512007-05-28 David Turner <david@freetype.org>
152
Werner Lemberg99e0c182007-05-29 07:00:23 +0000153 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
154 transformation. This significantly reduces the loading time of CFF
155 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000156
Werner Lemberg99e0c182007-05-29 07:00:23 +0000157 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000158
Werner Lemberg99e0c182007-05-29 07:00:23 +0000159 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
160 hinting script to CJK, since it works well with more scripts than
161 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
162 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000163
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001642007-05-25 Werner Lemberg <wl@gnu.org>
165
166 * docs/CHANGES: Updated.
167
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001682007-05-24 Werner Lemberg <wl@gnu.org>
169
170 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
171 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
172
1732007-05-24 Graham Asher <graham.asher@btinternet.com>
174
175 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
176 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
177
David Turner0d0365e2007-05-22 09:53:44 +00001782007-05-22 David Turner <david@freetype.org>
179
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000180 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
181 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000182
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000183
184 Avoid heap blowup with very large .Z font files. This fixes
185 Savannah bug #19910.
186
187 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
188 `in_limit', `pad', `pad_bits', and `in_buff' members.
189 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
190 `buf_total' members.
191
192 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
193 only one argument.
194 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000195
1962007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000197
198 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
199 (ps_dimension_set_mask_bits): Remove `const'.
200
David Turner0d0365e2007-05-22 09:53:44 +00002012007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000202
203 * src/sfnt/ttmtx.c (tt_face_get_metrics)
204 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
205
Werner Lembergb826fa72007-05-19 07:18:48 +00002062007-05-19 Derek Clegg <dclegg@apple.com>
207
208 Savannah patch #5929.
209
210 * include/freetype/tttables.h, src/base/ftobjcs.c
211 (FT_Get_CMap_Format): New function.
212
213 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
214 `format' member.
215 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
216 cmap_info->format.
217
Werner Lemberg6f99c882007-05-19 07:01:49 +00002182007-05-19 Werner Lemberg <wl@gnu.org>
219
220 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
221 before handling subglyphs so that it can be reinitialized each time.
222 This fixes Savannah bug #19859.
223
Werner Lemberg95bc9d32007-05-16 15:19:42 +00002242007-05-16 Werner Lemberg <wl@gnu.org>
225
226 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
227 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
228 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
229 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
230 tt_face_get_metrics): Fix type-punning issues.
231
David Turner0a24bd22007-05-15 10:54:10 +00002322007-05-15 David Turner <david@freetype.org>
233
234 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000235 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
236 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000237 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000238 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000239
Werner Lemberg607dec72007-05-15 06:49:37 +00002402007-05-15 Graham Asher <graham.asher@btinternet.com>
241
242 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
243 variable.
244 * src/autofit/afloader.c (af_loader_load_g): Ditto.
245
246 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
247 (open_face_from_buffer): Initialize `stream'.
248 (FT_Request_Metrics): Remove unused variable.
249 Remove redundant `break' statements.
250 (FT_Get_Track_Kerning): Remove unused variable.
251
252 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
253 afm_parse_kern_data): Remove redundant
254 `break' statements.
255 (afm_parser_parse): Ditto.
256 Don't use uninitialized variables.
257
258 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
259 Use `|' operator instead of `^' to set it.
260 Update all users.
261
262 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
263 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
264
265 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
266 comparison.
267 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
268 (TT_Load_Glyph): Remove unused variable.
269
Werner Lemberg8d463a52007-05-13 16:01:55 +00002702007-05-13 Derek Clegg <dclegg@apple.com>
271
272 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
273 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
274
David Turner711cf842007-05-11 14:36:24 +00002752007-05-11 David Turner <david@freetype.org>
276
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000277 * src/cache/ftbasic.c, include/freetype/ftcache.h
278 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
279 functions that allow us to look up glyphs using an FTC_Scaler object
280 to specify the size, making it possible to use fractional pixel
281 sizes.
282
283 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
284 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000285
Werner Lemberg94be20e2007-05-09 20:02:55 +00002862007-05-09 Graham Asher <graham.asher@btinternet.com>
287
288 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
289 (af_latin_metrics_scale_dim): Fix compiler warnings.
290
Werner Lemberg41271032007-05-06 04:51:48 +00002912007-05-06 Werner Lemberg <wl@gnu.org>
292
293 * builds/win32/visualce/freetype.sln: Removed, as requested by
294 Vincent.
295
Werner Lembergdf49e692007-05-04 06:30:05 +00002962007-05-04 Vincent RICHOMME <richom.v@free.fr>
297
298 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
299 PC targets.
300
301 * docs/CHANGES: Document them.
302
3032007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000304
305 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
306 mmap (which might happen on some RTOS). From Savannah patch #5909.
307
Werner Lemberg106eaf12007-05-03 07:07:47 +00003082007-05-03 Werner Lemberg <wl@gnu.org>
309
310 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
311 * include/freetype/freetype.h (FT_Set_Char_Size): Update
312 documentation.
313
Werner Lemberg1b5267d2007-04-28 21:06:15 +00003142007-04-28 Victor Stinner <victor.stinner@inl.fr>
315
316 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
317 `cmap'.
318
Werner Lembergcc712a22007-04-27 17:16:50 +00003192007-04-27 Werner Lemberg <wl@gnu.org>
320
321 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
322 number of points in contours. Problem reported by Victor Stinner
323 <victor.stinner@haypocalc.com>.
324 (TT_Process_Simple_Glyph): Synchronize variable types.
325
Werner Lemberg45bb18f2007-04-26 06:26:35 +00003262007-04-26 Werner Lemberg <wl@gnu.org>
327
328 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
329 zero in case of error. This fixes Savannah bug #19689.
330
David Turnera8b45e62007-05-11 14:10:30 +00003312007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
332
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000333 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
334 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000335
Werner Lembergfcc1f472007-04-10 11:51:50 +00003362007-04-10 Martin Horak <horakm@centrum.cz>
337
338 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
339 Ignore `hhea' table. This fixes Savannah bug #19261.
340
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003412007-04-09 Werner Lemberg <wl@gnu.org>
342
343 * Version 2.3.4 released.
344 =========================
345
346
347 Tag sources with `VER-2-3-4'.
348
349 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
350 version number to 2.3.4.
351
352 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
353 builds/win32/visualc/freetype.dsp,
354 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
355
356 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
357
358 * builds/unix/configure.raw (version_info): Set to 9:15:3.
359
Werner Lembergf4a52a62007-04-09 08:40:11 +00003602007-04-09 Martin Horak <horakm@centrum.cz>
361
362 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
363 memory stream to avoid a crash with the incremental memory
364 interface (Savannah bug #19260).
365
David Turner1dcb4442007-04-06 08:19:04 +00003662007-04-06 David Turner <david@freetype.org>
367
Werner Lembergc81cf612007-04-06 09:28:23 +0000368 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
369 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000370
Werner Lemberg9f83e052007-04-05 02:28:23 +00003712007-04-04 Werner Lemberg <wl@gnu.org>
372
373 * Version 2.3.3 released.
374 =========================
375
376
377 Tag sources with `VER-2-3-3'.
378
379 * docs/CHANGES: Mention CVE-2007-1351.
380
David Turner7338ec22007-04-03 14:30:34 +00003812007-04-03 David Turner <david@freetype.org>
382
383 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000384 if one of the resolution values is 0, treat it as if it were the
385 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000386
David Turnere6472c12007-04-02 13:13:54 +00003872007-04-02 David Turner <david@freetype.org>
388
Werner Lemberg94f12272007-04-03 07:19:53 +0000389 Add special code to detect `extra-light' fonts and do not snap their
390 stem widths too much to avoid bizarre hinting effects.
391
392 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
393 `extra_light' members.
394
395 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
396 them.
397 (af_latin_metrics_scale_dim): Set `extra_light'.
398 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000399
David Turner3f539692007-03-28 14:53:40 +00004002007-03-28 David Turner <david@freetype.org>
401
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000402 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000403 padding.
404
Werner Lemberga08b2172007-03-28 07:17:17 +00004052007-03-28 Werner Lemberg <wl@gnu.org>
406
407 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
408 gracefully.
409 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000410 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000411 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
412 number of code points in Unicode.
413
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000414 * builds/win32/visualc/index.html,
415 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000416 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000417 s/232/233/.
418
419 * docs/CHANGES: Mention ftdiff.
420
David Turner3b242d32007-03-26 12:03:04 +00004212007-03-26 David Turner <david@freetype.org>
422
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000423 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
424 corresponding code.
425 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000426
Werner Lemberga08b2172007-03-28 07:17:17 +0000427 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000428 computations in order to ignore single-point contours. These are
429 never rasterized and correspond in certain fonts to mark-attach
430 points that are very far from the glyph's real outline, ruining the
431 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000432
Werner Lemberga08b2172007-03-28 07:17:17 +0000433 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000434 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000435 Otherwise code that uses them will most certainly ruin the fixed
436 advance property.
David Turner23553d62007-03-26 13:37:17 +0000437
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000438 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
439 documentation and bump version number to 2.3.3.
440
441 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
442
443 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000444
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00004452007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
446
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000447 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
448 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000449 * builds/vms/ftconfig.h: Ditto.
450 * include/freetype/config/ftconfig.h: Ditto.
451
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004522007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
453
Werner Lemberg14ffe092007-03-22 06:12:43 +0000454 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
455 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000456 proposed by Sean McBride:
457 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
458
4592007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
460
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000461 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
462 setjmp, proposed by Sean McBride:
463 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
464
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004652007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
466
Werner Lembergc9f6c662007-03-21 13:30:14 +0000467 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
468 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
469 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000470
David Turner74c34eb2007-03-18 07:19:31 +00004712007-03-18 David Turner <david@freetype.org>
472
Werner Lembergc9f6c662007-03-21 13:30:14 +0000473 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
474 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000475
Werner Lembergc9f6c662007-03-21 13:30:14 +0000476 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000477
David Turner89020d92007-03-17 17:48:57 +00004782007-03-17 David Turner <david@freetype.org>
479
Werner Lembergc9f6c662007-03-21 13:30:14 +0000480 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
481 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000482
Werner Lemberg25d592a2007-03-09 07:59:35 +00004832007-03-09 Werner Lemberg <wl@gnu.org>
484
485 * Version 2.3.2 released.
486 =========================
487
488
489 Tag sources with `VER-2-3-2'.
490
491 * builds/win32/visualc/index.html,
492 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000493 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000494 s/231/232/.
495
David Turner3a51afa2007-03-08 10:50:38 +00004962007-03-08 David Turner <david@freetype.org>
497
Werner Lemberg25d592a2007-03-09 07:59:35 +0000498 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000499
Werner Lemberg25d592a2007-03-09 07:59:35 +0000500 * builds/unix/configure.raw (version_info): Set to 9:13:3.
501
502 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
503
504 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000505
Werner Lemberg1e259de2007-03-08 15:39:21 +0000506 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
507 function to work properly, over-writing user-provided buffers in
508 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000509
David Turner121cad52007-03-08 16:43:50 +0000510
Werner Lemberg3d92f082007-03-06 11:59:24 +00005112007-03-05 Werner Lemberg <wl@gnu.org>
512
513 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
514 macro for `strstr'.
515
516 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
517 `trick_names', as suggested by Ivan Nincic.
518
David Turner085bc6e2007-03-05 17:40:03 +00005192007-03-05 David Turner <david@freetype.org>
520
Werner Lembergd112cf02007-03-06 12:06:56 +0000521 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
522 case FT_Init_FreeType fails for some reason. Problem reported by
523 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000524
Werner Lembergd112cf02007-03-06 12:06:56 +0000525 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
526 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
527 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
528 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000529
Werner Lembergd112cf02007-03-06 12:06:56 +0000530 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
531 signed values, not unsigned ones. Problem reported by Johannes
532 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000533
David Turner601aefe2007-02-21 16:47:49 +00005342007-02-21 David Turner <david@freetype.org>
535
Werner Lembergde5e6862007-02-25 21:06:43 +0000536 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
537 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000538
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00005392007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
540
541 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
542 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
543 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
544
Werner Lemberga0915172007-02-16 08:12:50 +00005452007-02-16 Werner Lemberg <wl@gnu.org>
546
547 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
548 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
549
David Turner2c4500e2007-02-14 15:08:47 +00005502007-02-14 David Turner <david@freetype.org>
551
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000552 It seems that the following changes fix most of the known
553 interpreter problems with my fonts, but more testing is needed,
554 though.
555
556 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
557 (TT_MulFix14): Rewrite.
558 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
559 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000560
Werner Lembergc6a14082007-02-12 22:08:15 +00005612007-02-12 Werner Lemberg <wl@gnu.org>
562
563 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
564 warnings.
565
566 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
567 (bdf_interpret_style): Ditto.
568
David Turnerc0f9c4a2007-02-12 14:55:03 +00005692007-02-12 David Turner <david@freetype.org>
570
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000571 Simplify projection and dual-projection code interface.
572
Werner Lemberg406d25f2007-02-12 22:01:18 +0000573 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
574 FT_Vector' as argument type.
575 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
576 Updated.
577 (CUR_fast_project, CUR_fast_dualproj): New macros.
578 (Project, Dual_Project, Project_x, Project_y): Updated.
579 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
580 macros.
581
582
583 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
584 adjustments for the non-light auto-hinted modes. Gets rid of
585 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000586
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000587 * src/autofit/aflatin.c (af_latin_hints_link_segments,
588 af_latin_hints_compute_edges): Slight optimization of the segment
589 linker and better handling of serif segments to get rid of broken
590 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000591
David Turnerc0f9c4a2007-02-12 14:55:03 +0000592
Werner Lemberg442bfb82007-02-12 21:44:10 +0000593 Introduce new string functions and the corresponding macros to get
594 rid of various uses of strcpy and other `evil' functions, as well as
595 to simplify a few things.
596
597 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
598 ft_mem_strcpyn): New declarations.
599 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
600 macros.
601 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
602 functions.
603
604 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
605 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
606 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
607 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
608 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
609 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
610 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
611 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000612
Werner Lemberg406d25f2007-02-12 22:01:18 +0000613 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
614
Werner Lemberg582067d2007-02-11 15:03:05 +00006152007-02-11 Werner Lemberg <wl@gnu.org>
616
617 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
618 non-spacing glyphs.
619
Werner Lemberg8f474532007-02-07 08:31:01 +00006202007-02-07 Tom Parker <palfrey@tevp.net>
621
622 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
623 pointer.
624
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006252007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
626
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000627 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
628 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000629 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000630 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
631 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
632 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
633 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000634
635 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
636 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000637 * builds/mac/ftmac.c: Ditto.
638
6392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
640
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000641 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000642 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000643 #include <ftmac.c>.
644
6452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
646
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000647 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
648 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
649 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
650 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
651 FT_GetFilePath_From_Mac_ATS_Name.
652 * builds/mac/ftmac.c: Ditto.
653
6542007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
655
Werner Lembergdcbb7082007-02-08 08:54:09 +0000656 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000657 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
658 for passing to FT_New_Face_From_FSSpec.
659
6602007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
661
Werner Lembergdcbb7082007-02-08 08:54:09 +0000662 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000663 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000664
665 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
666 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000667 * builds/mac/ftmac.c (OS_INLINE): Ditto.
668
Werner Lemberg313d7772007-02-01 08:10:45 +00006692007-02-01 Werner Lemberg <wl@gnu.org>
670
671 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
672 Explain why applications shouldn't use it. Found by Alexei.
673
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006742007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000675
676 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
677 message.
678
679 * src/gxvalid/gxvmort1.c
680 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
681 message.
682
Werner Lemberg53935932007-01-31 08:53:02 +00006832007-01-31 Werner Lemberg <wl@gnu.org>
684
685
686 * Version 2.3.1 released.
687 =========================
688
689
690 Tag sources with `VER-2-3-1-FINAL'.
691
692 * builds/win32/visualc/freetype.dsp,
693 builds/win32/visualc/freetype.vcproj: s/230/231/.
694 * builds/win32/visualc/index.html: s/221/231/.
695
696 * vms_make.com: Add `ftgasp'.
697
David Turnera7ee6082007-01-30 10:33:53 +00006982007-01-30 David Turner <david@freetype.org>
699
Werner Lemberg53935932007-01-31 08:53:02 +0000700 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000701
Werner Lemberg53935932007-01-31 08:53:02 +0000702 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000703
Werner Lemberg25d592a2007-03-09 07:59:35 +0000704 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000705 s/2.3.0/2.3.1/.
706
707 * builds/unix/configure.raw (version_info): Set to 9:12:3.
708
709
710 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
711 (af_loader_load_g): Disable the warper (i.e., the light hinting
712 improvements) to make a 2.3.1 bugfix release before introducing a
713 new feature. This should give us more time to tune and improve the
714 warper for the next release.
715
716 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000717
David Turnerd91eebd2007-01-26 15:05:41 +00007182007-01-25 David Turner <david@freetype.org>
719
Werner Lembergbf241762007-01-26 16:08:49 +0000720 For light auto-hinting, improve glyph advance widths and resurrect
721 normal/full hinting to its normal quality.
722
723 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
724 and `xmax_delta'.
725 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
726 and `xmax_delta'.
727
728 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
729 preprocessor conditional with if-clause, handling both light and
730 normal mode.
731
732 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
733 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000734
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00007352007-01-25 Werner Lemberg <wl@gnu.org>
736
737 * docs/release: Updated -- Savannah uses a new uploading scheme.
738
David Turnera42567b2007-01-25 12:23:37 +00007392007-01-25 David Turner <david@freetype.org>
740
Werner Lembergd7855662007-01-25 13:53:56 +0000741 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000742
Werner Lembergd7855662007-01-25 13:53:56 +0000743 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
744 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
745 functions.
David Turnera42567b2007-01-25 12:23:37 +0000746
Werner Lembergd7855662007-01-25 13:53:56 +0000747 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000748
Werner Lembergb1be9e82007-01-25 11:50:00 +00007492007-01-25 Werner Lemberg <wl@gnu.org>
750
751 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000752 correctly in a sanity check. Since this function is only used to
753 load local and global functions, any charstring that called the last
754 local/global function would fail otherwise. This fixes Savannah bug
755 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000756
757 * docs/CHANGES: Document it.
758
David Turnerb6de8d12007-01-23 15:51:50 +00007592007-01-23 David Turner <david@freetype.org>
760
Werner Lembergb1be9e82007-01-25 11:50:00 +0000761 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
762 prevented compilation when disabling both the unpatented and the
763 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000764
Werner Lembergb1be9e82007-01-25 11:50:00 +0000765
766 Fix and enable the warper to improve `light' hinting mode. This is
767 not necessarily a final version, but it seems to work well.
768
769 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
770 Disable code.
771 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
772 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
773
774 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
775 (af_warper_compute_line_best): Fix array size of `scores'.
776 (af_warper_compute): Better handling of border cases.
777 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
778 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000779
Werner Lemberg011d1112007-01-21 09:36:00 +00007802007-01-21 Werner Lemberg <wl@gnu.org>
781
Werner Lemberg42b63b22007-01-21 21:01:33 +0000782 * ChangeLog: Split off older entries into...
783 * ChangeLog.22: This new file.
784
7852007-01-21 Werner Lemberg <wl@gnu.org>
786
Werner Lemberg555258f2007-01-21 09:46:37 +0000787 * docs/CHANGES: Document SHZ fix.
788
7892007-01-21 George Williams <gww@silcom.com>
790
791 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
792 points.
793
7942007-01-21 Werner Lemberg <wl@gnu.org>
795
Werner Lemberg011d1112007-01-21 09:36:00 +0000796 * src/sfnt/ttmtx.c (tt_face_get_metrics)
797 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
798
Werner Lemberg87a5a432007-01-17 12:44:39 +00007992007-01-17 Werner Lemberg <wl@gnu.org>
800
Werner Lembergb8003292007-01-17 12:56:25 +0000801
802 * Version 2.3.0 released.
803 =========================
804
805
806 Tag sources with `VER-2-3-0-FINAL'.
807
8082007-01-17 Werner Lemberg <wl@gnu.org>
809
Werner Lemberg87a5a432007-01-17 12:44:39 +0000810 * docs/release: Updated.
811
David Turner22122722007-01-16 20:06:44 +00008122007-01-16 David Turner <david@freetype.org>
813
Werner Lemberg87a5a432007-01-17 12:44:39 +0000814 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
815 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
816 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
817 warnings.
David Turner22122722007-01-16 20:06:44 +0000818
Werner Lemberg267e1d72007-01-15 07:48:09 +00008192007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
820
821 * builds/amiga/makefile, builds/amiga/makefile.os4,
822 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
823
824 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
825
Werner Lemberg8c4120d2007-01-15 06:42:40 +00008262007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
827
828 Fix various compiler warnings.
829
830 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
831 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
832 s/index/strike_index/.
833 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
834
835 * src/gxvalid/gxvmorx5.c
836 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
837
838 * src/truetype/ttinterp.c (Compute_Point_Displacement),
839 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
840 uninitialized variables.
841
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008422007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
843
844 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
845
Werner Lemberg281c1482007-01-13 22:50:51 +00008462007-01-13 Werner Lemberg <wl@gnu.org>
847
848 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
849 versions up to 0x3FF without complaining.
850
Werner Lembergac250b22007-01-13 14:01:36 +00008512007-01-13 Derek Clegg <dclegg@apple.com>
852
853 Add FT_Get_PS_Font_Info interface to CFF driver.
854
855 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
856 (CFF_FontRec): Add `font_info' field.
857
858 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
859 (cff_font_done): Free font->font_info if necessary.
860
861 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
862 (cff_service_ps_info): Register cff_ps_get_font_info.
863
Werner Lemberg23df31a2007-01-13 08:45:00 +00008642007-01-13 Werner Lemberg <wl@gnu.org>
865
866 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
867 with C++ compiler.
868
869 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
870 af_glyph_hints_dump_edges): Ditto.
871
872 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
873 `modules.cfg').
874
875 * src/sfnt/ttsbit0.h: Remove.
876
877 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
878
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008792007-01-12 David Turner <david@freetype.org>
880
881 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
882 bug in the bitmap emboldener if the pitch of the source bitmap is
883 much larger than its width.
884
885 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
886 compilation warning.
887
Werner Lemberg6d96d312007-01-12 10:30:19 +00008882007-01-12 Werner Lemberg <wl@gnu.org>
889
890 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
891 `automake' CVS module from sources.redhat.com.
892
Werner Lemberg17432b52007-01-12 09:28:44 +00008932007-01-11 Werner Lemberg <wl@gnu.org>
894
895 * src/type1/t1load.c (is_space): Removed.
896 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
897 (parse_charstrings): Use IS_PS_TOKEN.
898
899
900 * autogen.sh: Avoid bash specific syntax.
901
David Turner038ace22007-01-11 15:00:59 +00009022007-01-11 David Turner <david@freetype.org>
903
Werner Lemberg17432b52007-01-12 09:28:44 +0000904 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000905
Werner Lemberg17432b52007-01-12 09:28:44 +0000906 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000907
Werner Lemberg17432b52007-01-12 09:28:44 +0000908 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
909 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000910 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000911
Werner Lemberg17432b52007-01-12 09:28:44 +0000912 * autogen.sh: Small fix to get it working on Mac OS X properly:
913 The issue is that GNU libtool is called `glibtool' on this platform,
914 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000915
David Turner2628ea92007-01-10 13:15:56 +00009162007-01-10 David Turner <david@freetype.org>
917
Werner Lemberg17432b52007-01-12 09:28:44 +0000918 * all-sources: Tag all sources with VER-2-3-0-RC1 and
919 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000920
Werner Lemberg17432b52007-01-12 09:28:44 +0000921 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
922 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
923 version number to 2.3.0.
924
925 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
926 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000927
928 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000929 include/freetype/ftlcdfil.h: Update reference documentation with
930 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000931
Werner Lemberg17432b52007-01-12 09:28:44 +0000932 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
933 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000934
Werner Lembergbf02d392007-01-10 07:07:37 +00009352007-01-10 Derek Clegg <dclegg@apple.com>
936
937 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
938 values.
939
David Turnerf48b60e2007-01-08 15:15:32 +00009402007-01-08 David Turner <david@freetype.org>
941
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000942 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000943
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000944 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
945 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000946 corresponding to a given character pixel size.
947
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000948 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
949 `gasp' table, in order to avoid potential problems with later
950 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000951
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000952 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
953 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000954
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000955 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
956 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
957 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
958 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000959
Werner Lemberge6b6f372007-01-07 00:06:47 +00009602007-01-07 Werner Lemberg <wl@gnu.org>
961
Werner Lembergb8004d22007-01-07 09:13:38 +0000962 * src/cid/cidparse.c (cid_parser_new): Improve error message for
963 Type 11 fonts.
964 Scan for `/sfnts' token.
965
9662007-01-07 Werner Lemberg <wl@gnu.org>
967
968 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000969
Werner Lembergbe5f7972007-01-06 07:51:48 +00009702007-01-06 Werner Lemberg <wl@gnu.org>
971
972 * src/cff/cffload.c (cff_index_init): Remove unused variable.
973 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
974
David Turnera8cf42b2007-01-04 16:46:46 +00009752007-01-04 David Turner <david@freetype.org>
976
Werner Lembergf6294392007-01-06 07:47:45 +0000977 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
978 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000979
Werner Lembergf6294392007-01-06 07:47:45 +0000980
981 Do not allocate interpreter-specific tables in memory if we are not
982 going to load glyphs with the bytecode interpreter anyway.
983
984 * src/truetype/ttgload.c (tt_loader_init): Load execution context
985 only if glyph is hinted.
986 Updated.
987 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
988 and `cvs_ready'.
989 Add `tt_size_ready_bytecode' declaration.
990 * src/truetype/ttobjs.c (tt_size_done_bytecode,
991 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
992 (tt_size_init): Move most code into `tt_size_init_bytecode'.
993 (tt_size_done): Move most code into `tt_size_done_bytecode'.
994 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000995
David Turner91a34022007-01-05 14:47:08 +0000996
Werner Lembergf6294392007-01-06 07:47:45 +0000997 Don't extract the metrics table from the SFNT font file. Instead,
998 reparse it on each glyph load. The runtime difference is not
999 noticeable, and it can save a lot of heap memory when memory-mapped
1000 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001001
Werner Lembergf6294392007-01-06 07:47:45 +00001002 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1003 `horz_metrics_offset' and `vert_metrics_ofset'.
1004 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1005 Updated.
1006
1007
1008 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1009
1010
1011 Do not load the CFF index offsets into memory, since this wastes a
1012 *lot* of heap memory with large Asian CFF fonts. There is no
1013 significant performance loss.
1014
1015 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1016 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1017 `data_size'.
1018 (CFF_CharsetRec): Add field `num_glyphs'.
1019
1020 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1021 cff_charset_cid_to_gindex): New functions.
1022 (cff_new_index): Renamed to...
1023 (cff_index_init): This. Update all callers.
1024 Updated -- some code has been moved to `cff_index_load_offsets'.
1025 (cff_done_index): Renamed to...
1026 (cff_index_done): This. Update all callers.
1027 (cff_index_get_pointers, cff_index_access_element): Updated to use
1028 stream offsets.
1029 (cff_charset_compute_cids): Set `num_glyphs' field.
1030 (cff_encoding_load): Updated.
1031
1032 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001033
10342007-01-04 David Turner <david@freetype.org>
1035
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001036 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1037 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001038
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001039 * README.CVS: Add common problem description and solution
1040 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001041
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001042 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001043
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001044 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001045
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001046 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001047
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001048 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1049 (TWorker): This.
1050 Remove `count_table' and `memory'.
1051 Make `grays' a pointer.
1052 (TRaster): New structure.
1053 (count_table): New static array.
1054 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1055 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1056 ft_black_set_mode, ft_black_render): Updated.
1057 (ft_black_init): Don't initialize `count_table'.
1058 (ft_black_reset): Use the render pool. This saves about 6KB of
1059 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001060
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001061 * src/smooth/ftgrays.c (TRaster): Replaced with...
1062 (TWorker): This.
1063 Remove `memory'.
1064 (TRaster): New structure.
1065
1066 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1067 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1068 gray_render_span, gray_raster_render): Updated.
1069 (gray_raster_reset): Use the render pool. This saves about 6KB of
1070 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001071
David Turner8a6c44e2007-01-04 17:03:11 +00001072 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1073 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001074 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1075 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1076 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001077
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001078 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1079 Remove a typo that results in no hinting and a memory leak with some
1080 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001081
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001082 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001083 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001084 CFF_Faces in it. We need to close all faces before destroying the
1085 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001086
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010872007-01-02 Werner Lemberg <wl@gnu.org>
1088
1089 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1090 Remove compiler warning.
1091
David Turner9207e002007-01-02 16:58:13 +000010922007-01-02 David Turner <david@freetype.org>
1093
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001094 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001095
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000010962006-12-31 Masatake YAMATO <jet@gyve.org>
1097
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001098 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1099 function.
1100 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001101 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001102 `gxv_kern_subtable_fmt0_pairs_validate'.
1103
David Turner115b4422006-12-22 11:37:05 +000011042006-12-22 David Turner <david@freetype.org>
1105
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001106 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1107 warnings.
David Turner115b4422006-12-22 11:37:05 +00001108
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001109 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1110 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001111
Werner Lemberg4755bf72006-12-16 08:58:44 +000011122006-12-16 Anders Kaseorg <anders@kaseorg.com>
1113
1114 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1115 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1116
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000011172006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1118
Werner Lemberg9b774e22007-01-16 06:11:27 +00001119 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001120 sync with the modification by Jens Claudius on 2006-08-22; cf.
1121 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 +00001122
11232006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1124
1125 * src/base/ftmac.c: Specialized for Mac OS X only.
1126 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1127 * builds/unix/configure.raw: Ditto. When explicit switches for
1128 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1129 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1130
11312006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1132
1133 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1134 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1135 instead of src/base/ftmac.c
1136 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1137 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1138 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1139 that cannot be built at present.
1140
11412006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1142
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001143 * src/base/ftobjs.c: Improvement of resource fork handler for
1144 POSIX, cf.
1145 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001146 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1147 format or .dfont, to simulate the face index number counted by ftmac.c.
1148 (IsMacResource): Return the number of scalable faces correctly.
1149
Werner Lembergec5b4502006-12-10 07:51:38 +000011502006-12-10 Werner Lemberg <wl@gnu.org>
1151
1152 * builds/toplevel.mk (version): Protect against `distclean' target.
1153
Werner Lembergb26b3142006-12-09 20:01:43 +000011542006-12-09 Werner Lemberg <wl@gnu.org>
1155
1156 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1157 or `type'.
1158
1159 * builds/freetype.mk (version): Extracted from freetype.h, using
1160 GNU make's built-in string functions.
1161 (refdoc): Use $(version) instead of static version number.
1162
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000011632006-12-08 Werner Lemberg <wl@gnu.org>
1164
1165 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1166
Werner Lemberg15c29502006-12-09 07:29:54 +000011672006-12-08 Vladimir Volovich <vvv@vsu.ru>
1168
1169 * src/tools/apinames (State): Remove final comma in structure -- xlc
1170 v5 under AIX 4.3 doesn't like this.
1171
David Turnerdbf3b432006-12-07 21:18:09 +000011722006-12-07 David Turner <david@freetype.org>
1173
Werner Lemberg256a3512006-12-08 06:49:33 +00001174 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1175 to the spacing of auto-fitted glyphs. This only impacts rare
1176 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001177
Werner Lemberg11171312006-12-03 09:43:40 +000011782006-12-03 Werner Lemberg <wl@gnu.org>
1179
1180 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1181
Werner Lemberg960ba592006-12-01 08:20:47 +000011822006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001183
Werner Lemberg960ba592006-12-01 08:20:47 +00001184 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1185 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1186 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001187
David Turner80658e52006-11-28 08:09:20 +00001188
Werner Lemberg960ba592006-12-01 08:20:47 +00001189 * include/freetype/ftxf86.h: Fix and extend comment so that it
1190 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001191
Werner Lemberg960ba592006-12-01 08:20:47 +00001192 * include/freetype/ftchapters.h: Add `font_format' section.
1193
1194
1195 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1196 to TOC in index page.
1197
11982006-11-28 David Turner <david@freetype.org>
1199
1200 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1201 trying to render into a zero-width/height bitmap, not an error code.
1202
1203 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1204
1205 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1206 ones instead.
1207
1208 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1209 variable.
David Turner80658e52006-11-28 08:09:20 +00001210
Werner Lemberg8636c292006-11-26 22:28:13 +000012112006-11-26 Pierre Hanser <hanser@club-internet.fr>
1212
1213 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1214
Werner Lemberg960ba592006-12-01 08:20:47 +000012152006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001216
Werner Lemberg960ba592006-12-01 08:20:47 +00001217 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1218 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1219 Add stubs to link the `ftgrid' test program when debugging is
1220 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001221
Werner Lemberg960ba592006-12-01 08:20:47 +000012222006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001223
1224 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001225 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1226
1227 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1228 Emit more sensible information.
1229
1230 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1231
1232 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1233 rounding of blue values.
1234 (af_latin_hints_compute_segments): Hint segment heights.
1235 (af_latin_hints_link_segments): Reduce `len_score' value.
1236 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1237 value and use `height' member for comparisons.
1238 (af_latin_hint_edges): Extend logging message.
1239 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001240
Werner Lemberg91959bf2006-11-22 10:36:55 +000012412006-11-22 Werner Lemberg <wl@gnu.org>
1242
1243 Fix Savannah bug #15553.
1244
1245 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1246 program after a change from mono to grayscaling (and vice versa).
1247 Use correct constant for comparison to get `exec->grayscale'.
1248
Werner Lemberg913a3652006-11-19 09:19:17 +000012492006-11-18 Werner Lemberg <wl@gnu.org>
1250
1251 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001252 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001253 This patch fixes Savannah bug #18301.
1254
1255 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1256 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1257 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1258 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1259 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1260 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1261 (FNT_Load_Glyph): Check validity of `glyph_index'.
1262
David Turner7bab6ae2006-11-13 11:25:06 +000012632006-11-13 David Turner <david@freetype.org>
1264
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001265 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1266 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001267
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001268 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1269 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1270 when building the library to change the default LCD filter to be
1271 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001272
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001273 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001274
David Turner8765c712006-11-10 16:49:42 +000012752006-11-10 David Turner <david@freetype.org>
1276
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001277 * src/smooth/ftsmooth.c: API change for the LCD
1278 filter. The FT_LcdFilter value is an enumeration describing which
1279 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1280 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1281 algorithm which produces strong color fringes for everything
1282 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001283
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001284 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1285 second parameter to an enum type.
1286
1287 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1288 (_ft_lcd_filter): Rename to...
1289 (_ft_lcd_filter_fir): This.
1290 Update parameters.
1291 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1292 (FT_Library_Set_LcdFilter): Update parameters.
1293 Handle new filter modes.
1294
1295 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1296 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1297 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1298 callback and update other fields.
1299
1300 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1301 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1302 Other minor improvements.
1303
1304 * src/autofit/aflatin.c: Various tiny improvements that drastically
1305 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1306 (af_latin_hints_compute_edges): Fix typo.
1307 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001308
David Turner4e9cc3c2006-11-09 16:31:52 +000013092006-11-09 David Turner <david@freetype.org>
1310
Werner Lemberg49c77a82006-11-09 21:51:57 +00001311 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1312 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001313
Werner Lemberg5e430892006-11-07 09:35:03 +000013142006-11-07 Zhe Su <james.su@gmail.com>
1315
1316 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1317 also.
1318
Werner Lemberg111b5ae2006-11-03 09:40:12 +000013192006-11-03 Werner Lemberg <wl@gnu.org>
1320
1321 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1322
David Turner40604742006-11-02 16:37:35 +000013232006-11-02 David Turner <david@freetype.org>
1324
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001325 Add a few tweaks to better handle serif fonts.
1326 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001327
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001328 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1329 segments that are less than 1.5 pixels high. This gets rid of
1330 *many* corner cases with serifs.
1331 (af_latin_align_linked_edge): Add logging message.
1332 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1333 Add logging messages.
1334 Handle AF_EDGE_FLAG flag specially.
1335
1336 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1337 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1338
1339 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1340 Update external declarations.
1341 (af_corner_orientation, af_corner_is_flat): Replaced by...
1342
1343 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1344 ft_corner_is_flat): These declarations.
1345
1346 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1347 Comment out. Replaced by...
1348
1349 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1350 These functions. Update all callers.
1351 (FT_Add64) [!FT_LONG64]: Simplify.
1352
1353 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1354 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1355 production of garbage by missing lots of segments.
1356
1357 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1358
1359 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1360 [AF_DEBUG]: Set _af_debug_hints.
1361
1362
1363 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1364 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1365 and ft_corner_orientation.
1366
1367
1368 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001369
Werner Lemberge88c5262006-10-24 05:46:26 +000013702006-10-24 Werner Lemberg <wl@gnu.org>
1371
1372 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1373
1374 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1375 as argument.
1376
David Turnera1861392006-10-23 16:00:59 +000013772006-10-23 Zhe Su <zsu@novell.com>
1378
Werner Lemberg715e96e2006-10-24 05:28:45 +00001379 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1380 better deal with broken Asian fonts with strange glyphs, having
1381 self-intersections and other peculiarities. The used algorithm is
1382 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001383
David Turnere140f142006-10-23 08:56:57 +000013842006-10-23 David Turner <david@freetype.org>
1385
Werner Lemberg715e96e2006-10-24 05:28:45 +00001386 Speed up the CFF font loader. With some large CFF fonts,
1387 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001388
Werner Lemberg715e96e2006-10-24 05:28:45 +00001389 * src/cff/cffload.c (cff_get_offset): Removed.
1390 (cff_new_index): Inline functionality of `cff_get_offset'.
1391 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1392 (cff_charset_done): Call `cff_charset_free_cids'.
1393 (cff_charset_load): Call `cff_charset_compute_cids'.
1394 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1395
1396 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1397 with FT_NEXT_XXX.
1398
1399
1400 Speed up the Postscript hinter, with more than 100% speed increase
1401 on my machine.
1402
1403 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1404 psh_corner_orientation): New functions.
1405 (psh_glyph_compute_inflections): Merge loops for efficiency.
1406 Use `psh_corner_orientation'.
1407 (psh_glyph_init): Use `psh_corner_is_flat'.
1408 (psh_hint_table_find_strong_point): Renamed to...
1409 (psh_hint_table_find_strong_points): This.
1410 Rewrite, adding argument to handle all points at once.
1411 Update all callers.
1412 (PSH_MAX_STRONG_INTERNAL): New macro.
1413 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001414
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000014152006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1416
1417 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001418 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001419
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014202006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1421
1422 * docs/INSTALL.CROSS: New document file for cross-building.
1423
1424 * builds/unix/configure.raw: Preliminary cross-building support.
1425 Find native C compiler and pass it by CC_BUILD, and
1426 find suffix for native executable and pass it by EXEEXT_BUILD.
1427 Also suffix for target executable is passed by EXEEXT.
1428
Werner Lembergb9e6d692006-10-15 08:58:40 +00001429 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1430 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001431 CC_BUILD and EXEEXT_BUILD.
1432
Werner Lembergb9e6d692006-10-15 08:58:40 +00001433 * builds/exports.mk (APINAMES_EXE): Change the extension for
1434 apinames from the suffix for target (E) to that for building host
1435 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001436
Werner Lemberg82a07e92006-10-12 06:20:44 +000014372006-10-12 Werner Lemberg <wl@gnu.org>
1438
1439 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1440 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1441 which reference those files.
1442
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014432006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1444
Werner Lembergb9e6d692006-10-15 08:58:40 +00001445 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1446 embedded in freetype2.pc and freetype-config. Use it to record
1447 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001448
1449 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1450
1451 * builds/unix/freetype-config.in: Ditto.
1452
Werner Lemberg28e17d92006-10-11 17:27:47 +000014532006-10-11 Werner Lemberg <wl@gnu.org>
1454
1455 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1456 development.
1457
Jens Claudius336d2292006-10-03 08:53:37 +000014582006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1459
1460 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1461 argument to ft_setjmp.
1462
1463 * include/freetype/internal/ftvalid.h: Add comment that
1464 ft_validator_run must not be used.
1465
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014662006-10-01 Werner Lemberg <wl@gnu.org>
1467
1468 * src/base/ftbase.c: Undo change from 2006-09-30.
1469
1470 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1471
14722006-09-30 David Turner <david@freetype.org>
1473
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001474 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1475 s/unpatented_hinting/ignore_unpatented_hinter/.
1476 Update all callers.
1477
1478 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1479 auto-hinting shall be used or not.
1480
1481 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001482
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014832006-09-30 Werner Lemberg <wl@gnu.org>
1484
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001485 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1486 in use).
1487
1488 * src/base/ftbase.c: Include `ftlcdfil.c'.
1489
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014902006-09-29 Werner Lemberg <wl@gnu.org>
1491
1492 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1493 overlapping segments. Bug reported by Stefan Koch.
1494
David Turnerad830712006-09-27 16:20:59 +000014952006-09-28 David Turner <david@freetype.org>
1496
Werner Lemberg2c002e12006-09-29 21:31:53 +00001497 Fix a bug in the automatic unpatented hinting support which prevents
1498 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001499
Werner Lemberg2c002e12006-09-29 21:31:53 +00001500 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1501 s/force_autohint/unpatented_hinting/. Update all callers.
1502
1503 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1504
1505 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001506
David Turner8a317cf2006-09-27 07:52:48 +000015072006-09-27 David Turner <david@freetype.org>
1508
Werner Lemberg2c002e12006-09-29 21:31:53 +00001509 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001510
David Turner8a317cf2006-09-27 07:52:48 +00001511
David Turnere140f142006-10-23 08:56:57 +00001512 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001513 In a default build, the function `FT_Library_SetLcdFilter' returns
1514 `FT_Err_Unimplemented_Feature'; you need to #define
1515 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1516 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001517
Werner Lemberg2c002e12006-09-29 21:31:53 +00001518 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001519
Werner Lemberg2c002e12006-09-29 21:31:53 +00001520 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1521 typedef.
1522 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1523 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001524
Werner Lemberg2c002e12006-09-29 21:31:53 +00001525 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1526 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001527
Werner Lemberg2c002e12006-09-29 21:31:53 +00001528 Handle subpixel rendering.
1529 Simplify function.
1530 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1531 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1532
1533 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1534 pointing to <freetype/ftlcdfil.h>.
1535
1536 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1537 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1538
1539 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001540
Werner Lemberge20df4a2006-09-27 06:29:21 +000015412006-09-26 David Bustin
1542
1543 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1544 correctly. Reported as Savannah bug #17843.
1545
David Turner6f8c6222006-09-26 15:42:44 +000015462006-09-26 David Turner <david@freetype.org>
1547
Werner Lemberg110246c2006-09-26 21:55:44 +00001548 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1549 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1550 horizontal and vertical hinting for the purpose of debugging the
1551 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001552
Werner Lemberg110246c2006-09-26 21:55:44 +00001553 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1554 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001555
Werner Lemberg110246c2006-09-26 21:55:44 +00001556 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1557
1558 * include/freetype/config/ftoption.h, devel/ftoption.h
1559 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1560 we want to compile LCD-optimized rendering code (à la ClearType) or
1561 not. The macro *must* be disabled in default builds of the library
1562 for patent reasons.
1563
1564 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1565 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1566 isn't defined at compile time. This only changes the content of the
1567 rendered glyph to match the one of normal gray-level rendering,
1568 hence clients should not need to be modified.
1569
1570 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001571
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015722006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1573
1574 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1575 LWFN fails and both are available.
1576
David Turnerf3050052006-09-11 12:00:32 +000015772006-09-11 David Turner <david@freetype.org>
1578
Werner Lembergf9644552006-09-12 13:48:10 +00001579 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1580 report their English names through an Apple Roman
1581 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001582
Werner Lembergf9644552006-09-12 13:48:10 +00001583 If the font uses another name entry with language_id == English, it
1584 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001585
Werner Lembergf9644552006-09-12 13:48:10 +00001586 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1587 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001588
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015892006-09-05 Werner Lemberg <wl@gnu.org>
1590
1591 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001592 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001593 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1594 `HAN NOM B.ttf').
1595
1596 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1597
David Turner772e55d2006-09-05 09:45:15 +000015982006-09-05 David Turner <david@freetype.org>
1599
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001600 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001601
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001602 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1603 (TRaster): Remove `count_ex' and `count_ey'.
1604 (gray_find_cell): Remove 2nd and 3rd argument.
1605 (gray_alloc_cell): Merged with `gray_find_cell'.
1606 (gray_record_cell): Simplify.
1607 (gray_set_cell): Rewrite.
1608 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1609 (gray_render_span): Don't use FT_MEM_SET for small values.
1610 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1611 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1612 bitmap scanline.
1613 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001614
David Turneraa557a92006-09-04 16:42:44 +000016152006-09-04 David Turner <david@freetype.org>
1616
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001617 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1618 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001619
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016202006-09-03 Werner Lemberg <wl@gnu.org>
1621
1622 * devel/ftoption.h: Synchronize with
1623 include/freetype/config/ftoption.h.
1624
1625 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1626 variable declaration.
1627 (gray_convert_glyph): Fix compiler warnings.
1628
David Turner6d79f212006-09-01 14:09:35 +000016292006-09-01 David Turner <david@freetype.org>
1630
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001631 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1632 to recognize a few fonts that require the automatic unpatented
1633 loader.
David Turnerbd502952006-09-01 19:05:24 +00001634
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001635 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1636 rasterizer. The speed improvement is between 15% and 25%, depending
1637 on the font data.
1638
1639 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1640 (TCell): Redefine.
1641 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1642 (gray_init_cells): Updated.
1643 (gray_find_cell, gray_alloc_cell): New functions.
1644 (gray_record_cell): Rewritten to use `gray_find_cell' and
1645 `gray_alloc_cell'.
1646 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1647 QSORT_THRESHOLD):
1648 Removed.
1649 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1650 gray_dump_cells): Removed.
1651 (gray_sweep): Rewritten.
1652 (gray_convert_glyph): Rewrite code which used one of the sorting
1653 functions.
1654 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001655
Werner Lembergd898aed2006-08-29 09:50:34 +000016562006-08-29 Dr. Werner Fink <werner@suse.de>
1657
1658 * configure: Make it possible to handle configure options which
1659 have strings containing spaces.
1660
16612006-08-27 David Turner <david@freetype.org>
1662
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001663 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1664 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1665 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1666
1667 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1668 src/truetype/truetype.c, src/truetype/ttdriver.c,
1669 src/truetype/ttgload.c, src/truetype/ttgload.h,
1670 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1671 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1672 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1673
1674 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1675 member `force_autohint'.
1676
1677 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1678
1679 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1680 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001681
Jens Claudiusa787f452006-08-27 11:26:18 +000016822006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1683
1684 Fix miscellaneous compiler warnings.
1685
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001686 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1687 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001688
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001689 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1690 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1691 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001692
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001693 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1694 volatileness of argument to ft_longjmp. Spotted by Werner
1695 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001696
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001697 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1698 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001699
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001700 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1701 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001702
Werner Lembergc4c35b72006-08-27 08:03:46 +000017032006-08-27 Werner Lemberg <wl@gnu.org>
1704
1705 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1706 Reported by Jens.
1707
Jens Claudius088e44e2006-08-22 14:24:30 +000017082006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001709
Jens Claudius088e44e2006-08-22 14:24:30 +00001710 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001711 about addresses of volatile objects passed as function arguments as
1712 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001713
Werner Lembergc4c35b72006-08-27 08:03:46 +00001714 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1715 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001716
1717 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1718 argument `table' a pointer to a volatile object.
1719
1720 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1721 argument `table' a pointer to a volatile object.
1722
Jens Claudius2652bd52006-08-18 17:20:37 +000017232006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1724
1725 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1726 variable `_sfnt' as volatile since it must keep its value across
1727 a call to ft_setjmp.
1728 (gxv_validate): Same for local variables `memory' and `valid'.
1729 (classic_kern_validate): Same for local variables `memory',
1730 `ckern', and `valid'.
1731
1732 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1733 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1734 `jstf', and 'valid'.
1735
1736 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1737 local variable `cmap'.
1738
David Turner9fbfc6a2006-08-16 09:11:31 +000017392006-08-16 David Turner <david@freetype.org>
1740
Werner Lemberg12342992006-08-19 11:18:09 +00001741 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1742 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001743
Werner Lemberg12342992006-08-19 11:18:09 +00001744 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1745 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001746
David Turner33f5f242006-08-16 16:50:55 +00001747
Werner Lemberg12342992006-08-19 11:18:09 +00001748 Improvements to native TrueType hinting. This is a first try,
1749 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1750
1751 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1752 `extra_points2'.
1753
1754 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1755 `orus'.
1756
1757 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1758 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1759 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1760 handle `extra_points2'.
1761
1762 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1763 Remove compiler warning.
1764 (cur_to_arg): Remove macro.
1765 (TT_Hint_Glyph): Updated.
1766 (TT_Process_Simple_Glyph): Handle `orus'.
1767
1768 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1769 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1770 (LOC_Ins_IUP): Renamed to...
1771 (IUP_WorkerRec): This.
1772 Add `orus' member.
1773 (Shift): Renamed to...
1774 (_iup_worker_shift): This.
1775 Updated.
1776 (Interp): Renamed to...
1777 (_iup_worker_interpolate): This.
1778 Updated to handle `orus'.
1779 (Ins_IUP): Updated.
1780
1781 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1782 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001783
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017842006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1785
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001786 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001787 build ftvalid in ft2demos. This has been inadvertedly changed
1788 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001789
17902006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1791
Werner Lemberg12342992006-08-19 11:18:09 +00001792 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1793 Jens:
1794 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001795
Werner Lemberg12342992006-08-19 11:18:09 +00001796 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1797 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001798
1799 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1800
Jens Claudius9950adc2006-08-13 12:14:36 +000018012006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1802
Werner Lemberg12342992006-08-19 11:18:09 +00001803 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1804 T1_TOKEN_TYPE_KEY.
1805 (T1_FieldRec): Add `dict'.
1806 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1807 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1808 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001809
Werner Lemberg12342992006-08-19 11:18:09 +00001810 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1811 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001812
1813 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1814
1815 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001816 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1817 not T1_TOKEN_TYPE_ANY.
1818 (ps_parser_load_field): Make sure a token that should be a string or
1819 name is really a string or name.
1820 Avoid memory leak if a keyword has been already encountered and its
1821 value is overwritten.
1822 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1823 T1_FIELD_XXX.
1824 (parse_dict): Ignore keywords that occur in the wrong dictionary
1825 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001826
Werner Lemberg12342992006-08-19 11:18:09 +00001827 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1828 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001829
Werner Lemberg12342992006-08-19 11:18:09 +00001830 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1831 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001832
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000018332006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1834
1835 Move creation of field `buildchar' of T1_DecoderRec out of
1836 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1837 of it.
1838
1839 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1840 and `T1_Compute_Max_Advance'.
1841
1842 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1843 Remove field `face', add `len_buildchar'.
1844
1845 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1846 field `buildchar'.
1847
1848 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1849 finisher for T1_Decoder.
1850 (cid_slot_load_glyph): Do not ignore failure when initializing the
1851 T1_Decoder.
1852
1853 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1854 Updated.
1855 (t1_decoder_init): Remove initialization of fields `buildchar' and
1856 `len_buildchar'.
1857 (t1_decoder_done): Remove deallocation of field `buildchar'.
1858
1859 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1860 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1861 T1_Decoder.
1862 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1863 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1864 case of error.
1865
1866 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1867 `buildchar' of T1_FaceRec.
1868
1869 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1870 `buildchar' of T1_FaceRec.
1871
Werner Lemberg1a380e02006-07-14 18:28:08 +000018722006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1873
1874 * freetype2/include/freetype/internal/psaux.h: New macros
1875 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1876 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1877 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1878 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1879 (T1_DecoderRec): New fields `buildchar' and `face'.
1880 (IS_PS_TOKEN): New macro.
1881
1882 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1883 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1884
1885 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1886 `default_design_vector' and `num_default_design_vector'.
1887
1888 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1889 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1890 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1891
1892 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1893 `token' argument to be NULL if we want only to count the number of
1894 tokens.
1895 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1896 want to skip the array.
1897 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1898 want to skip the array.
1899
1900 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1901 support for (partially commented out) othersubrs 19-25, 27, and 28.
1902 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1903 (t1_decoder_done): Release new field `buildchar'.
1904
1905 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1906 functions.
1907 (t1_keywords): Register them.
1908 (t1_allocate_blend): Updated.
1909 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1910 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1911 (parse_dict): Remove `keyword_flags' argument.
1912 Use new macro IS_PS_TOKEN.
1913 Changed function so that later PostScript definitions override
1914 earlier ones.
1915 (t1_init_loader): Initialize new field `keywords_encountered'.
1916 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1917 `len_buildchar'.
1918 Remove `keywords_flags'.
1919
1920 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1921 `keywords_encountered'.
1922 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1923
1924 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1925 New entries for parsing /NDV, /CDV, and /DesignVector.
1926
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000019272006-07-07 Werner Lemberg <wl@gnu.org>
1928
1929 Add many checks to protect against malformed PCF files.
1930
1931 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1932 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1933
1934 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1935 data and check that tables don't overlap (using a simple
1936 bubblesort).
1937 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1938 New macros which give the size of data structures in the data
1939 stream.
1940 (pcf_get_properties): Use rough estimates to get array size limits.
1941 Assign `face->nprops' and `face->properties' earlier so that a call
1942 to PCF_Face_Done can do the clean-up in case of error.
1943 Protect against invalid string offsets.
1944 (pcf_get_metrics): Clean up code.
1945 Adjust tracing message levels.
1946 Use rough estimate to get array size limit.
1947 (pcf_get_bitmaps): Clean up code.
1948 Adjust tracing message levels.
1949 Use rough estimates to get offset limits.
1950 (pcf_get_encodings): Adjust tracing message level.
1951 (pcf_get_accel): Clean up code.
1952
Werner Lemberg8eb05252006-06-27 06:20:01 +000019532006-06-26 Werner Lemberg <wl@gnu.org>
1954
1955 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1956 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1957
Werner Lemberg24703f82006-06-26 19:12:51 +000019582006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1959
1960 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1961 (t1_decoder_parse_charstrings): Operator with
1962 opcode 15 pops its two arguments.
1963 Handle the case where the pops of an othersubr may be part of a
1964 subroutine.
1965 Handle unknown othersubrs gracefully: count their operands and let
1966 the following pop operators push the operands as the results onto
1967 the Type1 stack.
1968 Improve handling of setcurrentpoint opcode.
1969
Werner Lembergc011f4c2006-06-26 09:40:00 +000019702006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1971
1972 The Type 1 parser now skips over top-level procedures as required
1973 for a `Simplified Parser'. This makes the parser more robust as it
1974 doesn't poke around in PostScript code. Additionally, it makes the
1975 FontDirectory hackery in src/type1/t1load.c unnecessary.
1976
1977 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1978 (skip_literal_string): Add FT_Error as return value.
1979 Handle escapes better.
1980 (skip_string): Add FT_Error as return value.
1981 Don't set `parser->error' but return error code directly.
1982 (skip_procedure): New function.
1983 (ps_parser_skip_PS_token): Handle procedures.
1984 Update code.
1985 (ps_parser_to_token): Update code.
1986 (ps_parser_load_field_table): Handle bbox entries also.
1987
1988 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1989 Add commented-out code for synthetic fonts.
1990
Werner Lemberga2da05c2006-06-25 06:27:27 +000019912006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1992
1993 Fix two hinting bugs as reported in
1994 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1995
1996 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1997 `first_point' member.
1998
1999 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2000 `first_point'.
2001 (TT_Process_Composite_Glyph): Always untouch points.
2002
2003 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2004 `first_point' and `last_point' in case of composite glyphs.
2005 (Ins_IUP): Fix computation of `end_point'.
2006
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020072006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2008
Werner Lembergef3d2c22006-06-25 06:07:14 +00002009 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2010 Mac. The original patch was written by David Sachitano and Lawrence
2011 Coopet, and modified by Sean McBride for MPW compatibility. Only
2012 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002013
Werner Lembergef3d2c22006-06-25 06:07:14 +00002014 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2015 Mac OS X platforms.
2016 (OS_INLINE): Undefine before definition.
2017 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2018 FontAssociation table in FOND resource.
2019 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2020 and fontSize at each entry of FontAssociation table in FOND
2021 resource.
2022 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2023 ffStylOff of FamilyRecord header of FOND resource, the header,
2024 fontSize, fontID at each entry of FontAssociation table, and
2025 StyleMapping table.
2026 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002027
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000020282006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2029
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002030 Public API of TrueTypeGX, OpenType, and classic kern table validator
2031 should return `FT_Err_Unimplemented_Feature' if validation service
2032 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002033 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002034 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2035
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002036 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2037 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2038 unavailable.
2039 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2040 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002041
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002042 * src/base/ftotval.c (FT_OpenType_Validate): Return
2043 FT_Err_Unimplemented_Feature if OpenType validation service is
2044 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002045
Werner Lembergb10e45a2006-06-08 07:32:56 +000020462006-06-08 Werner Lemberg <wl@gnu.org>
2047
2048 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2049 errors.
2050
David Turner5f1f7502006-06-07 05:11:50 +000020512006-06-07 David Turner <david@freetype.org>
2052
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002053 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2054 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2055 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002056
David Turner457b4a82006-06-06 08:14:14 +000020572006-06-06 David Turner <david@freetype.org>
2058
Werner Lemberg4836f952006-06-06 12:54:08 +00002059 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002060
Werner Lemberg4836f952006-06-06 12:54:08 +00002061 We change `ps_unicodes_init' so that it also takes a
2062 `free_glyph_name' callback to release the glyph names returned by
2063 `get_glyph_name'
2064
2065 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2066 Renamed to ...
2067 (PS_GetGlyphNameFunc): This.
2068 (PS_FreeGlyphNameFunc): New typedef.
2069 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2070
2071 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2072 argument.
2073 (cff_sid_free_glyph_name): New function.
2074 (cff_cmap_unicode_init): Updated.
2075
2076 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2077
2078 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2079 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002080
2081
David Turner09717352006-06-04 14:33:08 +000020822006-06-04 David Turner <david@freetype.org>
2083
Werner Lembergd724f202006-06-04 15:17:41 +00002084 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2085 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002086 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002087
Werner Lembergd724f202006-06-04 15:17:41 +00002088 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2089 of `face->num_glyphs' which missed the last glyph, due to
2090 the offset-by-1 computation, since the PFR format doesn't
2091 guarantee that glyph index 0 corresponds to the `missing
2092 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002093
Werner Lemberg33779662006-05-26 06:30:05 +000020942006-05-25 Werner Lemberg <wl@gnu.org>
2095
2096 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2097 `-no-undefined'. Reported by Christian Biesinger.
2098
Werner Lemberg24773d62006-05-20 08:53:13 +000020992006-05-19 Brian Weed <bw@imaginengine.com>
2100
2101 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2102 have debug information, and debug libraries use `C7 compatible'
2103 debug info.
2104
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021052006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2106
Werner Lemberga6523a62006-05-20 08:47:01 +00002107 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002108 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002109
Werner Lemberga6523a62006-05-20 08:47:01 +00002110 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2111 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002112
2113 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002114 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002115
21162006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2117
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002118 * build/unix/configure.raw: Add a fallback to disable Carbon
2119 dependency, if configured with no options on Mac OS X.
2120
21212006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2122
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002123 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002124 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002125 the second part of Savannah bug #16590.
2126
Werner Lemberg545c4e52006-05-17 22:55:04 +000021272006-05-18 Werner Lemberg <wl@gnu.org>
2128
2129 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2130 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2131
David Turnerdc3ff312006-05-17 12:59:35 +000021322006-05-17 David Turner <david@freetype.org>
2133
Werner Lemberg545c4e52006-05-17 22:55:04 +00002134 This is a major patch used to drastically improve the performance of
2135 loading glyphs. This both speeds up loading the glyph vectors
2136 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002137
Werner Lemberg545c4e52006-05-17 22:55:04 +00002138 We now use inline assembler code with GCC to implement `FT_MulFix',
2139 which is probably the most important function related to the
2140 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002141
Werner Lemberg545c4e52006-05-17 22:55:04 +00002142 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002143
2144
Werner Lemberg545c4e52006-05-17 22:55:04 +00002145 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2146 `cursor' and `limit'.
2147
2148 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2149 New functions.
2150 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2151 [TEST]: Remove.
2152
2153 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2154 code.
2155
2156 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2157 `FT_ZERO'
2158 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2159 (af_glyph_hints_reload: Rewrite recognition of weak points.
2160
2161 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2162 constant values out of the loops.
2163
2164 * src/autofit/aftypes.h: Updated.
2165
2166 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2167
2168 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2169 product to get orientation.
2170
2171 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2172 (FT_Stream_OpenGzip): Use it to handle small files directly in
2173 memory.
2174
2175 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2176 Improve performance.
2177
2178 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2179 `limit'.
2180
2181 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2182 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2183 exceedingly large values of number of contours. Speed up by
2184 reducing the number of loops.
2185
2186 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2187
2188
2189 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2190 used to detect rogue clients from 4 to 16. This is to prevent some
2191 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2192 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002193
Werner Lembergde2d90a2006-05-17 08:54:30 +000021942007-05-17 Werner Lemberg <wl@gnu.org>
2195
2196 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002197 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002198
21992006-05-16 Werner Lemberg <wl@gnu.org>
2200
2201 * docs/PROBLEMS: Updated icl issues.
2202
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002203----------------------------------------------------------------------------
2204
Werner Lemberg42b63b22007-01-21 21:01:33 +00002205Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002206David Turner, Robert Wilhelm, and Werner Lemberg.
2207
2208This file is part of the FreeType project, and may only be used, modified,
2209and distributed under the terms of the FreeType project license,
2210LICENSE.TXT. By continuing to use, modify, or distribute this file you
2211indicate that you have read the license and understand and accept it
2212fully.
2213
2214
2215Local Variables:
2216version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002217coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002218End: