blob: 3e3020b995917ed43188a2c8ab0774d1fb7c3218 [file] [log] [blame]
David Turnerb7920172007-06-11 05:37:35 +000012007-06-11 David Turner <david@freetype.org>
2
3 * src/autofit/*: some very experimental changes to improve the Latin
4 auto-hinter. note that the new code is disabled by default since this
5 is not stablizied yet.
6
Werner Lembergf6c120f2007-06-11 04:55:58 +000072007-06-11 Werner Lemberg <wl@gnu.org>
8
Werner Lembergcf7b7642007-06-11 04:58:01 +00009 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +000010
David Turner84c6f882007-06-10 20:51:04 +0000112007-06-10 David Turner <david@freetype.org>
12
Werner Lembergf6c120f2007-06-11 04:55:58 +000013 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
14 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +000015
Werner Lembergf6c120f2007-06-11 04:55:58 +000016 * include/freetype/config/ftoption.h: Clarify documentation
17 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +000018
Werner Lembergf6c120f2007-06-11 04:55:58 +000019
20 Add new `FT_Face_CheckTrueTypePatents' API.
21
22 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
23 declaration.
24
25 * include/freetype/internal/services/svttglyf.h,
26 src/base/ftpatent.c: New files.
27
28 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
29 New macro.
30
31 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
32 `ttpload.h'.
33 (tt_service_truetype_glyf): New service structure.
34 (tt_services): Register it.
35
36 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
37 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +000038
Werner Lemberg33db39e2007-06-08 06:30:29 +0000392007-06-08 Werner Lemberg <wl@gnu.org>
40
David Turner84c6f882007-06-10 20:51:04 +000041 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +000042 Fonts without a cmap must be handled correctly by FreeType (anything
43 else would be a bug).
44
45
46 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
47 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
48
Werner Lemberg88ab6382007-06-07 05:01:56 +0000492007-06-07 Werner Lemberg <wl@gnu.org>
50
51 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
52 tt_sbit_decoder_load_image): Protect against integer overflows.
53
54
55 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
56 for `x_control' and `y_control'.
57
Werner Lemberg2a2dca62007-06-06 04:39:37 +0000582007-06-06 Werner Lemberg <wl@gnu.org>
59
60 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
61
Werner Lemberga8d65492007-06-06 04:47:49 +000062
63 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
64 FreeType error.
65
Werner Lemberg470210b2007-06-06 10:05:49 +000066
67 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
68 `font_count'.
69
70
71 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
72
73
74 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
75 `FT_Error'.
76 Check `fd_index'.
77 (cff_slot_load): Updated.
78 * src/cff/cffgload.h: Updated.
79
Werner Lemberg6c054752007-06-05 05:27:54 +0000802007-06-05 Werner Lemberg <wl@gnu.org>
81
82 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
83 (pfr_glyph_load_simple): Convert assertion into normal FreeType
84 error.
85 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000086 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
87 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000088
89 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
90
Werner Lembergf4bc3f42007-06-05 07:32:15 +000091
Werner Lemberg470210b2007-06-06 10:05:49 +000092 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +000093
Werner Lemberge5c14d92007-06-05 20:50:37 +000094
95 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
96 in case of parsing error.
97 (ps_parser_load_field): Updated.
98
99 * src/type1/t1load.c (parse_font_matrix): Updated.
100
Werner Lembergad18b362007-06-04 07:04:05 +00001012007-06-04 Werner Lemberg <wl@gnu.org>
102
103 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
104
105 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
106
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001072007-06-03 Werner Lemberg <wl@gnu.org>
108
Werner Lemberg99a320b2007-06-03 19:21:26 +0000109 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
110 George Williams (with some modifications).
111
1122007-06-03 Werner Lemberg <wl@gnu.org>
113
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000114 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
115 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
116 face == NULL. Suggested by Graham Asher.
117
Werner Lembergce280a22007-06-03 05:58:30 +00001182007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
119
120 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
121
Werner Lemberg5b591e42007-06-01 22:16:43 +00001222007-06-02 Werner Lemberg <wl@gnu.org>
123
124 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
125 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
126
127 * src/bdf/bdflib.c (bdf_load_font): Use them.
128
129 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
130
Werner Lembergb9933f42007-06-01 21:27:12 +00001312007-06-01 Werner Lemberg <wl@gnu.org>
132
133 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
134 (FTC_CMapCache_Lookup): Remove unused code.
135
Werner Lembergc793d902007-06-01 20:51:11 +00001362007-06-01 Sean McBride <sean@rogue-research.com>
137
138 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
139 unused.
140
Werner Lembergbebc7b12007-06-01 06:32:30 +00001412007-06-01 Werner Lemberg <wl@gnu.org>
142
143 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
144 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000145 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000146
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000147 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
148 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
149
Werner Lembergba03af62007-05-30 13:57:02 +00001502007-05-30 Werner Lemberg <wl@gnu.org>
151
152 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
153 against too small binary data strings.
154
155 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
156
David Turnerf0cd69c2007-05-28 15:42:09 +00001572007-05-28 David Turner <david@freetype.org>
158
Werner Lemberg99e0c182007-05-29 07:00:23 +0000159 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
160 transformation. This significantly reduces the loading time of CFF
161 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000162
Werner Lemberg99e0c182007-05-29 07:00:23 +0000163 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000164
Werner Lemberg99e0c182007-05-29 07:00:23 +0000165 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
166 hinting script to CJK, since it works well with more scripts than
167 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
168 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000169
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001702007-05-25 Werner Lemberg <wl@gnu.org>
171
172 * docs/CHANGES: Updated.
173
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001742007-05-24 Werner Lemberg <wl@gnu.org>
175
176 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
177 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
178
1792007-05-24 Graham Asher <graham.asher@btinternet.com>
180
181 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
182 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
183
David Turner0d0365e2007-05-22 09:53:44 +00001842007-05-22 David Turner <david@freetype.org>
185
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000186 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
187 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000188
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000189
190 Avoid heap blowup with very large .Z font files. This fixes
191 Savannah bug #19910.
192
193 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
194 `in_limit', `pad', `pad_bits', and `in_buff' members.
195 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
196 `buf_total' members.
197
198 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
199 only one argument.
200 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000201
2022007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000203
204 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
205 (ps_dimension_set_mask_bits): Remove `const'.
206
David Turner0d0365e2007-05-22 09:53:44 +00002072007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000208
209 * src/sfnt/ttmtx.c (tt_face_get_metrics)
210 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
211
Werner Lembergb826fa72007-05-19 07:18:48 +00002122007-05-19 Derek Clegg <dclegg@apple.com>
213
214 Savannah patch #5929.
215
216 * include/freetype/tttables.h, src/base/ftobjcs.c
217 (FT_Get_CMap_Format): New function.
218
219 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
220 `format' member.
221 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
222 cmap_info->format.
223
Werner Lemberg6f99c882007-05-19 07:01:49 +00002242007-05-19 Werner Lemberg <wl@gnu.org>
225
226 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
227 before handling subglyphs so that it can be reinitialized each time.
228 This fixes Savannah bug #19859.
229
Werner Lemberg95bc9d32007-05-16 15:19:42 +00002302007-05-16 Werner Lemberg <wl@gnu.org>
231
232 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
233 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
234 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
235 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
236 tt_face_get_metrics): Fix type-punning issues.
237
David Turner0a24bd22007-05-15 10:54:10 +00002382007-05-15 David Turner <david@freetype.org>
239
240 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000241 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
242 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000243 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000244 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000245
Werner Lemberg607dec72007-05-15 06:49:37 +00002462007-05-15 Graham Asher <graham.asher@btinternet.com>
247
248 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
249 variable.
250 * src/autofit/afloader.c (af_loader_load_g): Ditto.
251
252 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
253 (open_face_from_buffer): Initialize `stream'.
254 (FT_Request_Metrics): Remove unused variable.
255 Remove redundant `break' statements.
256 (FT_Get_Track_Kerning): Remove unused variable.
257
258 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
259 afm_parse_kern_data): Remove redundant
260 `break' statements.
261 (afm_parser_parse): Ditto.
262 Don't use uninitialized variables.
263
264 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
265 Use `|' operator instead of `^' to set it.
266 Update all users.
267
268 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
269 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
270
271 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
272 comparison.
273 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
274 (TT_Load_Glyph): Remove unused variable.
275
Werner Lemberg8d463a52007-05-13 16:01:55 +00002762007-05-13 Derek Clegg <dclegg@apple.com>
277
278 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
279 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
280
David Turner711cf842007-05-11 14:36:24 +00002812007-05-11 David Turner <david@freetype.org>
282
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000283 * src/cache/ftbasic.c, include/freetype/ftcache.h
284 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
285 functions that allow us to look up glyphs using an FTC_Scaler object
286 to specify the size, making it possible to use fractional pixel
287 sizes.
288
289 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
290 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000291
Werner Lemberg94be20e2007-05-09 20:02:55 +00002922007-05-09 Graham Asher <graham.asher@btinternet.com>
293
294 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
295 (af_latin_metrics_scale_dim): Fix compiler warnings.
296
Werner Lemberg41271032007-05-06 04:51:48 +00002972007-05-06 Werner Lemberg <wl@gnu.org>
298
299 * builds/win32/visualce/freetype.sln: Removed, as requested by
300 Vincent.
301
Werner Lembergdf49e692007-05-04 06:30:05 +00003022007-05-04 Vincent RICHOMME <richom.v@free.fr>
303
304 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
305 PC targets.
306
307 * docs/CHANGES: Document them.
308
3092007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000310
311 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
312 mmap (which might happen on some RTOS). From Savannah patch #5909.
313
Werner Lemberg106eaf12007-05-03 07:07:47 +00003142007-05-03 Werner Lemberg <wl@gnu.org>
315
316 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
317 * include/freetype/freetype.h (FT_Set_Char_Size): Update
318 documentation.
319
Werner Lemberg1b5267d2007-04-28 21:06:15 +00003202007-04-28 Victor Stinner <victor.stinner@inl.fr>
321
322 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
323 `cmap'.
324
Werner Lembergcc712a22007-04-27 17:16:50 +00003252007-04-27 Werner Lemberg <wl@gnu.org>
326
327 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
328 number of points in contours. Problem reported by Victor Stinner
329 <victor.stinner@haypocalc.com>.
330 (TT_Process_Simple_Glyph): Synchronize variable types.
331
Werner Lemberg45bb18f2007-04-26 06:26:35 +00003322007-04-26 Werner Lemberg <wl@gnu.org>
333
334 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
335 zero in case of error. This fixes Savannah bug #19689.
336
David Turnera8b45e62007-05-11 14:10:30 +00003372007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
338
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000339 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
340 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000341
Werner Lembergfcc1f472007-04-10 11:51:50 +00003422007-04-10 Martin Horak <horakm@centrum.cz>
343
344 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
345 Ignore `hhea' table. This fixes Savannah bug #19261.
346
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003472007-04-09 Werner Lemberg <wl@gnu.org>
348
349 * Version 2.3.4 released.
350 =========================
351
352
353 Tag sources with `VER-2-3-4'.
354
355 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
356 version number to 2.3.4.
357
358 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
359 builds/win32/visualc/freetype.dsp,
360 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
361
362 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
363
364 * builds/unix/configure.raw (version_info): Set to 9:15:3.
365
Werner Lembergf4a52a62007-04-09 08:40:11 +00003662007-04-09 Martin Horak <horakm@centrum.cz>
367
368 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
369 memory stream to avoid a crash with the incremental memory
370 interface (Savannah bug #19260).
371
David Turner1dcb4442007-04-06 08:19:04 +00003722007-04-06 David Turner <david@freetype.org>
373
Werner Lembergc81cf612007-04-06 09:28:23 +0000374 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
375 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000376
Werner Lemberg9f83e052007-04-05 02:28:23 +00003772007-04-04 Werner Lemberg <wl@gnu.org>
378
379 * Version 2.3.3 released.
380 =========================
381
382
383 Tag sources with `VER-2-3-3'.
384
385 * docs/CHANGES: Mention CVE-2007-1351.
386
David Turner7338ec22007-04-03 14:30:34 +00003872007-04-03 David Turner <david@freetype.org>
388
389 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000390 if one of the resolution values is 0, treat it as if it were the
391 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000392
David Turnere6472c12007-04-02 13:13:54 +00003932007-04-02 David Turner <david@freetype.org>
394
Werner Lemberg94f12272007-04-03 07:19:53 +0000395 Add special code to detect `extra-light' fonts and do not snap their
396 stem widths too much to avoid bizarre hinting effects.
397
398 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
399 `extra_light' members.
400
401 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
402 them.
403 (af_latin_metrics_scale_dim): Set `extra_light'.
404 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000405
David Turner3f539692007-03-28 14:53:40 +00004062007-03-28 David Turner <david@freetype.org>
407
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000408 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000409 padding.
410
Werner Lemberga08b2172007-03-28 07:17:17 +00004112007-03-28 Werner Lemberg <wl@gnu.org>
412
413 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
414 gracefully.
415 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000416 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000417 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
418 number of code points in Unicode.
419
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000420 * builds/win32/visualc/index.html,
421 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000422 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000423 s/232/233/.
424
425 * docs/CHANGES: Mention ftdiff.
426
David Turner3b242d32007-03-26 12:03:04 +00004272007-03-26 David Turner <david@freetype.org>
428
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000429 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
430 corresponding code.
431 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000432
Werner Lemberga08b2172007-03-28 07:17:17 +0000433 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000434 computations in order to ignore single-point contours. These are
435 never rasterized and correspond in certain fonts to mark-attach
436 points that are very far from the glyph's real outline, ruining the
437 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000438
Werner Lemberga08b2172007-03-28 07:17:17 +0000439 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000440 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000441 Otherwise code that uses them will most certainly ruin the fixed
442 advance property.
David Turner23553d62007-03-26 13:37:17 +0000443
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000444 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
445 documentation and bump version number to 2.3.3.
446
447 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
448
449 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000450
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00004512007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
452
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000453 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
454 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000455 * builds/vms/ftconfig.h: Ditto.
456 * include/freetype/config/ftconfig.h: Ditto.
457
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004582007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
459
Werner Lemberg14ffe092007-03-22 06:12:43 +0000460 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
461 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000462 proposed by Sean McBride:
463 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
464
4652007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
466
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000467 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
468 setjmp, proposed by Sean McBride:
469 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
470
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004712007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
472
Werner Lembergc9f6c662007-03-21 13:30:14 +0000473 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
474 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
475 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000476
David Turner74c34eb2007-03-18 07:19:31 +00004772007-03-18 David Turner <david@freetype.org>
478
Werner Lembergc9f6c662007-03-21 13:30:14 +0000479 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
480 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000481
Werner Lembergc9f6c662007-03-21 13:30:14 +0000482 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000483
David Turner89020d92007-03-17 17:48:57 +00004842007-03-17 David Turner <david@freetype.org>
485
Werner Lembergc9f6c662007-03-21 13:30:14 +0000486 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
487 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000488
Werner Lemberg25d592a2007-03-09 07:59:35 +00004892007-03-09 Werner Lemberg <wl@gnu.org>
490
491 * Version 2.3.2 released.
492 =========================
493
494
495 Tag sources with `VER-2-3-2'.
496
497 * builds/win32/visualc/index.html,
498 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000499 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000500 s/231/232/.
501
David Turner3a51afa2007-03-08 10:50:38 +00005022007-03-08 David Turner <david@freetype.org>
503
Werner Lemberg25d592a2007-03-09 07:59:35 +0000504 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000505
Werner Lemberg25d592a2007-03-09 07:59:35 +0000506 * builds/unix/configure.raw (version_info): Set to 9:13:3.
507
508 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
509
510 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000511
Werner Lemberg1e259de2007-03-08 15:39:21 +0000512 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
513 function to work properly, over-writing user-provided buffers in
514 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000515
David Turner121cad52007-03-08 16:43:50 +0000516
Werner Lemberg3d92f082007-03-06 11:59:24 +00005172007-03-05 Werner Lemberg <wl@gnu.org>
518
519 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
520 macro for `strstr'.
521
522 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
523 `trick_names', as suggested by Ivan Nincic.
524
David Turner085bc6e2007-03-05 17:40:03 +00005252007-03-05 David Turner <david@freetype.org>
526
Werner Lembergd112cf02007-03-06 12:06:56 +0000527 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
528 case FT_Init_FreeType fails for some reason. Problem reported by
529 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000530
Werner Lembergd112cf02007-03-06 12:06:56 +0000531 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
532 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
533 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
534 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000535
Werner Lembergd112cf02007-03-06 12:06:56 +0000536 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
537 signed values, not unsigned ones. Problem reported by Johannes
538 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000539
David Turner601aefe2007-02-21 16:47:49 +00005402007-02-21 David Turner <david@freetype.org>
541
Werner Lembergde5e6862007-02-25 21:06:43 +0000542 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
543 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000544
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00005452007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
546
547 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
548 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
549 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
550
Werner Lemberga0915172007-02-16 08:12:50 +00005512007-02-16 Werner Lemberg <wl@gnu.org>
552
553 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
554 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
555
David Turner2c4500e2007-02-14 15:08:47 +00005562007-02-14 David Turner <david@freetype.org>
557
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000558 It seems that the following changes fix most of the known
559 interpreter problems with my fonts, but more testing is needed,
560 though.
561
562 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
563 (TT_MulFix14): Rewrite.
564 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
565 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000566
Werner Lembergc6a14082007-02-12 22:08:15 +00005672007-02-12 Werner Lemberg <wl@gnu.org>
568
569 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
570 warnings.
571
572 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
573 (bdf_interpret_style): Ditto.
574
David Turnerc0f9c4a2007-02-12 14:55:03 +00005752007-02-12 David Turner <david@freetype.org>
576
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000577 Simplify projection and dual-projection code interface.
578
Werner Lemberg406d25f2007-02-12 22:01:18 +0000579 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
580 FT_Vector' as argument type.
581 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
582 Updated.
583 (CUR_fast_project, CUR_fast_dualproj): New macros.
584 (Project, Dual_Project, Project_x, Project_y): Updated.
585 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
586 macros.
587
588
589 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
590 adjustments for the non-light auto-hinted modes. Gets rid of
591 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000592
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000593 * src/autofit/aflatin.c (af_latin_hints_link_segments,
594 af_latin_hints_compute_edges): Slight optimization of the segment
595 linker and better handling of serif segments to get rid of broken
596 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000597
David Turnerc0f9c4a2007-02-12 14:55:03 +0000598
Werner Lemberg442bfb82007-02-12 21:44:10 +0000599 Introduce new string functions and the corresponding macros to get
600 rid of various uses of strcpy and other `evil' functions, as well as
601 to simplify a few things.
602
603 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
604 ft_mem_strcpyn): New declarations.
605 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
606 macros.
607 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
608 functions.
609
610 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
611 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
612 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
613 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
614 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
615 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
616 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
617 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000618
Werner Lemberg406d25f2007-02-12 22:01:18 +0000619 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
620
Werner Lemberg582067d2007-02-11 15:03:05 +00006212007-02-11 Werner Lemberg <wl@gnu.org>
622
623 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
624 non-spacing glyphs.
625
Werner Lemberg8f474532007-02-07 08:31:01 +00006262007-02-07 Tom Parker <palfrey@tevp.net>
627
628 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
629 pointer.
630
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006312007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
632
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000633 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
634 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000635 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000636 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
637 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
638 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
639 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000640
641 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
642 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000643 * builds/mac/ftmac.c: Ditto.
644
6452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
646
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000647 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000648 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000649 #include <ftmac.c>.
650
6512007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
652
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000653 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
654 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
655 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
656 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
657 FT_GetFilePath_From_Mac_ATS_Name.
658 * builds/mac/ftmac.c: Ditto.
659
6602007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
661
Werner Lembergdcbb7082007-02-08 08:54:09 +0000662 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000663 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
664 for passing to FT_New_Face_From_FSSpec.
665
6662007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
667
Werner Lembergdcbb7082007-02-08 08:54:09 +0000668 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000669 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000670
671 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
672 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000673 * builds/mac/ftmac.c (OS_INLINE): Ditto.
674
Werner Lemberg313d7772007-02-01 08:10:45 +00006752007-02-01 Werner Lemberg <wl@gnu.org>
676
677 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
678 Explain why applications shouldn't use it. Found by Alexei.
679
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006802007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000681
682 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
683 message.
684
685 * src/gxvalid/gxvmort1.c
686 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
687 message.
688
Werner Lemberg53935932007-01-31 08:53:02 +00006892007-01-31 Werner Lemberg <wl@gnu.org>
690
691
692 * Version 2.3.1 released.
693 =========================
694
695
696 Tag sources with `VER-2-3-1-FINAL'.
697
698 * builds/win32/visualc/freetype.dsp,
699 builds/win32/visualc/freetype.vcproj: s/230/231/.
700 * builds/win32/visualc/index.html: s/221/231/.
701
702 * vms_make.com: Add `ftgasp'.
703
David Turnera7ee6082007-01-30 10:33:53 +00007042007-01-30 David Turner <david@freetype.org>
705
Werner Lemberg53935932007-01-31 08:53:02 +0000706 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000707
Werner Lemberg53935932007-01-31 08:53:02 +0000708 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000709
Werner Lemberg25d592a2007-03-09 07:59:35 +0000710 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000711 s/2.3.0/2.3.1/.
712
713 * builds/unix/configure.raw (version_info): Set to 9:12:3.
714
715
716 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
717 (af_loader_load_g): Disable the warper (i.e., the light hinting
718 improvements) to make a 2.3.1 bugfix release before introducing a
719 new feature. This should give us more time to tune and improve the
720 warper for the next release.
721
722 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000723
David Turnerd91eebd2007-01-26 15:05:41 +00007242007-01-25 David Turner <david@freetype.org>
725
Werner Lembergbf241762007-01-26 16:08:49 +0000726 For light auto-hinting, improve glyph advance widths and resurrect
727 normal/full hinting to its normal quality.
728
729 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
730 and `xmax_delta'.
731 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
732 and `xmax_delta'.
733
734 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
735 preprocessor conditional with if-clause, handling both light and
736 normal mode.
737
738 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
739 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000740
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00007412007-01-25 Werner Lemberg <wl@gnu.org>
742
743 * docs/release: Updated -- Savannah uses a new uploading scheme.
744
David Turnera42567b2007-01-25 12:23:37 +00007452007-01-25 David Turner <david@freetype.org>
746
Werner Lembergd7855662007-01-25 13:53:56 +0000747 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000748
Werner Lembergd7855662007-01-25 13:53:56 +0000749 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
750 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
751 functions.
David Turnera42567b2007-01-25 12:23:37 +0000752
Werner Lembergd7855662007-01-25 13:53:56 +0000753 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000754
Werner Lembergb1be9e82007-01-25 11:50:00 +00007552007-01-25 Werner Lemberg <wl@gnu.org>
756
757 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000758 correctly in a sanity check. Since this function is only used to
759 load local and global functions, any charstring that called the last
760 local/global function would fail otherwise. This fixes Savannah bug
761 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000762
763 * docs/CHANGES: Document it.
764
David Turnerb6de8d12007-01-23 15:51:50 +00007652007-01-23 David Turner <david@freetype.org>
766
Werner Lembergb1be9e82007-01-25 11:50:00 +0000767 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
768 prevented compilation when disabling both the unpatented and the
769 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000770
Werner Lembergb1be9e82007-01-25 11:50:00 +0000771
772 Fix and enable the warper to improve `light' hinting mode. This is
773 not necessarily a final version, but it seems to work well.
774
775 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
776 Disable code.
777 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
778 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
779
780 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
781 (af_warper_compute_line_best): Fix array size of `scores'.
782 (af_warper_compute): Better handling of border cases.
783 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
784 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000785
Werner Lemberg011d1112007-01-21 09:36:00 +00007862007-01-21 Werner Lemberg <wl@gnu.org>
787
Werner Lemberg42b63b22007-01-21 21:01:33 +0000788 * ChangeLog: Split off older entries into...
789 * ChangeLog.22: This new file.
790
7912007-01-21 Werner Lemberg <wl@gnu.org>
792
Werner Lemberg555258f2007-01-21 09:46:37 +0000793 * docs/CHANGES: Document SHZ fix.
794
7952007-01-21 George Williams <gww@silcom.com>
796
797 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
798 points.
799
8002007-01-21 Werner Lemberg <wl@gnu.org>
801
Werner Lemberg011d1112007-01-21 09:36:00 +0000802 * src/sfnt/ttmtx.c (tt_face_get_metrics)
803 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
804
Werner Lemberg87a5a432007-01-17 12:44:39 +00008052007-01-17 Werner Lemberg <wl@gnu.org>
806
Werner Lembergb8003292007-01-17 12:56:25 +0000807
808 * Version 2.3.0 released.
809 =========================
810
811
812 Tag sources with `VER-2-3-0-FINAL'.
813
8142007-01-17 Werner Lemberg <wl@gnu.org>
815
Werner Lemberg87a5a432007-01-17 12:44:39 +0000816 * docs/release: Updated.
817
David Turner22122722007-01-16 20:06:44 +00008182007-01-16 David Turner <david@freetype.org>
819
Werner Lemberg87a5a432007-01-17 12:44:39 +0000820 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
821 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
822 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
823 warnings.
David Turner22122722007-01-16 20:06:44 +0000824
Werner Lemberg267e1d72007-01-15 07:48:09 +00008252007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
826
827 * builds/amiga/makefile, builds/amiga/makefile.os4,
828 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
829
830 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
831
Werner Lemberg8c4120d2007-01-15 06:42:40 +00008322007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
833
834 Fix various compiler warnings.
835
836 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
837 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
838 s/index/strike_index/.
839 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
840
841 * src/gxvalid/gxvmorx5.c
842 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
843
844 * src/truetype/ttinterp.c (Compute_Point_Displacement),
845 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
846 uninitialized variables.
847
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008482007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
849
850 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
851
Werner Lemberg281c1482007-01-13 22:50:51 +00008522007-01-13 Werner Lemberg <wl@gnu.org>
853
854 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
855 versions up to 0x3FF without complaining.
856
Werner Lembergac250b22007-01-13 14:01:36 +00008572007-01-13 Derek Clegg <dclegg@apple.com>
858
859 Add FT_Get_PS_Font_Info interface to CFF driver.
860
861 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
862 (CFF_FontRec): Add `font_info' field.
863
864 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
865 (cff_font_done): Free font->font_info if necessary.
866
867 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
868 (cff_service_ps_info): Register cff_ps_get_font_info.
869
Werner Lemberg23df31a2007-01-13 08:45:00 +00008702007-01-13 Werner Lemberg <wl@gnu.org>
871
872 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
873 with C++ compiler.
874
875 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
876 af_glyph_hints_dump_edges): Ditto.
877
878 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
879 `modules.cfg').
880
881 * src/sfnt/ttsbit0.h: Remove.
882
883 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
884
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008852007-01-12 David Turner <david@freetype.org>
886
887 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
888 bug in the bitmap emboldener if the pitch of the source bitmap is
889 much larger than its width.
890
891 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
892 compilation warning.
893
Werner Lemberg6d96d312007-01-12 10:30:19 +00008942007-01-12 Werner Lemberg <wl@gnu.org>
895
896 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
897 `automake' CVS module from sources.redhat.com.
898
Werner Lemberg17432b52007-01-12 09:28:44 +00008992007-01-11 Werner Lemberg <wl@gnu.org>
900
901 * src/type1/t1load.c (is_space): Removed.
902 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
903 (parse_charstrings): Use IS_PS_TOKEN.
904
905
906 * autogen.sh: Avoid bash specific syntax.
907
David Turner038ace22007-01-11 15:00:59 +00009082007-01-11 David Turner <david@freetype.org>
909
Werner Lemberg17432b52007-01-12 09:28:44 +0000910 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000911
Werner Lemberg17432b52007-01-12 09:28:44 +0000912 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000913
Werner Lemberg17432b52007-01-12 09:28:44 +0000914 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
915 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000916 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000917
Werner Lemberg17432b52007-01-12 09:28:44 +0000918 * autogen.sh: Small fix to get it working on Mac OS X properly:
919 The issue is that GNU libtool is called `glibtool' on this platform,
920 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000921
David Turner2628ea92007-01-10 13:15:56 +00009222007-01-10 David Turner <david@freetype.org>
923
Werner Lemberg17432b52007-01-12 09:28:44 +0000924 * all-sources: Tag all sources with VER-2-3-0-RC1 and
925 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000926
Werner Lemberg17432b52007-01-12 09:28:44 +0000927 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
928 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
929 version number to 2.3.0.
930
931 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
932 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000933
934 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000935 include/freetype/ftlcdfil.h: Update reference documentation with
936 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000937
Werner Lemberg17432b52007-01-12 09:28:44 +0000938 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
939 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000940
Werner Lembergbf02d392007-01-10 07:07:37 +00009412007-01-10 Derek Clegg <dclegg@apple.com>
942
943 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
944 values.
945
David Turnerf48b60e2007-01-08 15:15:32 +00009462007-01-08 David Turner <david@freetype.org>
947
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000948 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000949
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000950 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
951 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000952 corresponding to a given character pixel size.
953
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000954 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
955 `gasp' table, in order to avoid potential problems with later
956 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000957
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000958 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
959 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000960
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000961 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
962 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
963 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
964 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000965
Werner Lemberge6b6f372007-01-07 00:06:47 +00009662007-01-07 Werner Lemberg <wl@gnu.org>
967
Werner Lembergb8004d22007-01-07 09:13:38 +0000968 * src/cid/cidparse.c (cid_parser_new): Improve error message for
969 Type 11 fonts.
970 Scan for `/sfnts' token.
971
9722007-01-07 Werner Lemberg <wl@gnu.org>
973
974 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000975
Werner Lembergbe5f7972007-01-06 07:51:48 +00009762007-01-06 Werner Lemberg <wl@gnu.org>
977
978 * src/cff/cffload.c (cff_index_init): Remove unused variable.
979 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
980
David Turnera8cf42b2007-01-04 16:46:46 +00009812007-01-04 David Turner <david@freetype.org>
982
Werner Lembergf6294392007-01-06 07:47:45 +0000983 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
984 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000985
Werner Lembergf6294392007-01-06 07:47:45 +0000986
987 Do not allocate interpreter-specific tables in memory if we are not
988 going to load glyphs with the bytecode interpreter anyway.
989
990 * src/truetype/ttgload.c (tt_loader_init): Load execution context
991 only if glyph is hinted.
992 Updated.
993 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
994 and `cvs_ready'.
995 Add `tt_size_ready_bytecode' declaration.
996 * src/truetype/ttobjs.c (tt_size_done_bytecode,
997 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
998 (tt_size_init): Move most code into `tt_size_init_bytecode'.
999 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1000 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001001
David Turner91a34022007-01-05 14:47:08 +00001002
Werner Lembergf6294392007-01-06 07:47:45 +00001003 Don't extract the metrics table from the SFNT font file. Instead,
1004 reparse it on each glyph load. The runtime difference is not
1005 noticeable, and it can save a lot of heap memory when memory-mapped
1006 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001007
Werner Lembergf6294392007-01-06 07:47:45 +00001008 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1009 `horz_metrics_offset' and `vert_metrics_ofset'.
1010 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1011 Updated.
1012
1013
1014 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1015
1016
1017 Do not load the CFF index offsets into memory, since this wastes a
1018 *lot* of heap memory with large Asian CFF fonts. There is no
1019 significant performance loss.
1020
1021 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1022 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1023 `data_size'.
1024 (CFF_CharsetRec): Add field `num_glyphs'.
1025
1026 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1027 cff_charset_cid_to_gindex): New functions.
1028 (cff_new_index): Renamed to...
1029 (cff_index_init): This. Update all callers.
1030 Updated -- some code has been moved to `cff_index_load_offsets'.
1031 (cff_done_index): Renamed to...
1032 (cff_index_done): This. Update all callers.
1033 (cff_index_get_pointers, cff_index_access_element): Updated to use
1034 stream offsets.
1035 (cff_charset_compute_cids): Set `num_glyphs' field.
1036 (cff_encoding_load): Updated.
1037
1038 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001039
10402007-01-04 David Turner <david@freetype.org>
1041
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001042 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1043 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001044
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001045 * README.CVS: Add common problem description and solution
1046 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001047
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001048 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001049
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001050 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001051
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001052 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001053
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001054 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1055 (TWorker): This.
1056 Remove `count_table' and `memory'.
1057 Make `grays' a pointer.
1058 (TRaster): New structure.
1059 (count_table): New static array.
1060 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1061 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1062 ft_black_set_mode, ft_black_render): Updated.
1063 (ft_black_init): Don't initialize `count_table'.
1064 (ft_black_reset): Use the render pool. This saves about 6KB of
1065 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001066
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001067 * src/smooth/ftgrays.c (TRaster): Replaced with...
1068 (TWorker): This.
1069 Remove `memory'.
1070 (TRaster): New structure.
1071
1072 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1073 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1074 gray_render_span, gray_raster_render): Updated.
1075 (gray_raster_reset): Use the render pool. This saves about 6KB of
1076 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001077
David Turner8a6c44e2007-01-04 17:03:11 +00001078 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1079 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001080 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1081 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1082 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001083
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001084 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1085 Remove a typo that results in no hinting and a memory leak with some
1086 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001087
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001088 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001089 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001090 CFF_Faces in it. We need to close all faces before destroying the
1091 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001092
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010932007-01-02 Werner Lemberg <wl@gnu.org>
1094
1095 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1096 Remove compiler warning.
1097
David Turner9207e002007-01-02 16:58:13 +000010982007-01-02 David Turner <david@freetype.org>
1099
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001100 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001101
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011022006-12-31 Masatake YAMATO <jet@gyve.org>
1103
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001104 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1105 function.
1106 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001107 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001108 `gxv_kern_subtable_fmt0_pairs_validate'.
1109
David Turner115b4422006-12-22 11:37:05 +000011102006-12-22 David Turner <david@freetype.org>
1111
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001112 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1113 warnings.
David Turner115b4422006-12-22 11:37:05 +00001114
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001115 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1116 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001117
Werner Lemberg4755bf72006-12-16 08:58:44 +000011182006-12-16 Anders Kaseorg <anders@kaseorg.com>
1119
1120 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1121 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1122
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000011232006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1124
Werner Lemberg9b774e22007-01-16 06:11:27 +00001125 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001126 sync with the modification by Jens Claudius on 2006-08-22; cf.
1127 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 +00001128
11292006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1130
1131 * src/base/ftmac.c: Specialized for Mac OS X only.
1132 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1133 * builds/unix/configure.raw: Ditto. When explicit switches for
1134 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1135 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1136
11372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1138
1139 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1140 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1141 instead of src/base/ftmac.c
1142 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1143 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1144 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1145 that cannot be built at present.
1146
11472006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1148
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001149 * src/base/ftobjs.c: Improvement of resource fork handler for
1150 POSIX, cf.
1151 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001152 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1153 format or .dfont, to simulate the face index number counted by ftmac.c.
1154 (IsMacResource): Return the number of scalable faces correctly.
1155
Werner Lembergec5b4502006-12-10 07:51:38 +000011562006-12-10 Werner Lemberg <wl@gnu.org>
1157
1158 * builds/toplevel.mk (version): Protect against `distclean' target.
1159
Werner Lembergb26b3142006-12-09 20:01:43 +000011602006-12-09 Werner Lemberg <wl@gnu.org>
1161
1162 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1163 or `type'.
1164
1165 * builds/freetype.mk (version): Extracted from freetype.h, using
1166 GNU make's built-in string functions.
1167 (refdoc): Use $(version) instead of static version number.
1168
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000011692006-12-08 Werner Lemberg <wl@gnu.org>
1170
1171 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1172
Werner Lemberg15c29502006-12-09 07:29:54 +000011732006-12-08 Vladimir Volovich <vvv@vsu.ru>
1174
1175 * src/tools/apinames (State): Remove final comma in structure -- xlc
1176 v5 under AIX 4.3 doesn't like this.
1177
David Turnerdbf3b432006-12-07 21:18:09 +000011782006-12-07 David Turner <david@freetype.org>
1179
Werner Lemberg256a3512006-12-08 06:49:33 +00001180 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1181 to the spacing of auto-fitted glyphs. This only impacts rare
1182 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001183
Werner Lemberg11171312006-12-03 09:43:40 +000011842006-12-03 Werner Lemberg <wl@gnu.org>
1185
1186 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1187
Werner Lemberg960ba592006-12-01 08:20:47 +000011882006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001189
Werner Lemberg960ba592006-12-01 08:20:47 +00001190 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1191 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1192 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001193
David Turner80658e52006-11-28 08:09:20 +00001194
Werner Lemberg960ba592006-12-01 08:20:47 +00001195 * include/freetype/ftxf86.h: Fix and extend comment so that it
1196 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001197
Werner Lemberg960ba592006-12-01 08:20:47 +00001198 * include/freetype/ftchapters.h: Add `font_format' section.
1199
1200
1201 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1202 to TOC in index page.
1203
12042006-11-28 David Turner <david@freetype.org>
1205
1206 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1207 trying to render into a zero-width/height bitmap, not an error code.
1208
1209 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1210
1211 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1212 ones instead.
1213
1214 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1215 variable.
David Turner80658e52006-11-28 08:09:20 +00001216
Werner Lemberg8636c292006-11-26 22:28:13 +000012172006-11-26 Pierre Hanser <hanser@club-internet.fr>
1218
1219 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1220
Werner Lemberg960ba592006-12-01 08:20:47 +000012212006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001222
Werner Lemberg960ba592006-12-01 08:20:47 +00001223 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1224 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1225 Add stubs to link the `ftgrid' test program when debugging is
1226 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001227
Werner Lemberg960ba592006-12-01 08:20:47 +000012282006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001229
1230 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001231 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1232
1233 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1234 Emit more sensible information.
1235
1236 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1237
1238 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1239 rounding of blue values.
1240 (af_latin_hints_compute_segments): Hint segment heights.
1241 (af_latin_hints_link_segments): Reduce `len_score' value.
1242 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1243 value and use `height' member for comparisons.
1244 (af_latin_hint_edges): Extend logging message.
1245 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001246
Werner Lemberg91959bf2006-11-22 10:36:55 +000012472006-11-22 Werner Lemberg <wl@gnu.org>
1248
1249 Fix Savannah bug #15553.
1250
1251 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1252 program after a change from mono to grayscaling (and vice versa).
1253 Use correct constant for comparison to get `exec->grayscale'.
1254
Werner Lemberg913a3652006-11-19 09:19:17 +000012552006-11-18 Werner Lemberg <wl@gnu.org>
1256
1257 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001258 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001259 This patch fixes Savannah bug #18301.
1260
1261 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1262 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1263 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1264 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1265 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1266 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1267 (FNT_Load_Glyph): Check validity of `glyph_index'.
1268
David Turner7bab6ae2006-11-13 11:25:06 +000012692006-11-13 David Turner <david@freetype.org>
1270
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001271 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1272 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001273
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001274 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1275 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1276 when building the library to change the default LCD filter to be
1277 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001278
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001279 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001280
David Turner8765c712006-11-10 16:49:42 +000012812006-11-10 David Turner <david@freetype.org>
1282
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001283 * src/smooth/ftsmooth.c: API change for the LCD
1284 filter. The FT_LcdFilter value is an enumeration describing which
1285 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1286 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1287 algorithm which produces strong color fringes for everything
1288 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001289
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001290 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1291 second parameter to an enum type.
1292
1293 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1294 (_ft_lcd_filter): Rename to...
1295 (_ft_lcd_filter_fir): This.
1296 Update parameters.
1297 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1298 (FT_Library_Set_LcdFilter): Update parameters.
1299 Handle new filter modes.
1300
1301 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1302 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1303 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1304 callback and update other fields.
1305
1306 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1307 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1308 Other minor improvements.
1309
1310 * src/autofit/aflatin.c: Various tiny improvements that drastically
1311 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1312 (af_latin_hints_compute_edges): Fix typo.
1313 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001314
David Turner4e9cc3c2006-11-09 16:31:52 +000013152006-11-09 David Turner <david@freetype.org>
1316
Werner Lemberg49c77a82006-11-09 21:51:57 +00001317 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1318 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001319
Werner Lemberg5e430892006-11-07 09:35:03 +000013202006-11-07 Zhe Su <james.su@gmail.com>
1321
1322 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1323 also.
1324
Werner Lemberg111b5ae2006-11-03 09:40:12 +000013252006-11-03 Werner Lemberg <wl@gnu.org>
1326
1327 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1328
David Turner40604742006-11-02 16:37:35 +000013292006-11-02 David Turner <david@freetype.org>
1330
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001331 Add a few tweaks to better handle serif fonts.
1332 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001333
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001334 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1335 segments that are less than 1.5 pixels high. This gets rid of
1336 *many* corner cases with serifs.
1337 (af_latin_align_linked_edge): Add logging message.
1338 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1339 Add logging messages.
1340 Handle AF_EDGE_FLAG flag specially.
1341
1342 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1343 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1344
1345 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1346 Update external declarations.
1347 (af_corner_orientation, af_corner_is_flat): Replaced by...
1348
1349 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1350 ft_corner_is_flat): These declarations.
1351
1352 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1353 Comment out. Replaced by...
1354
1355 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1356 These functions. Update all callers.
1357 (FT_Add64) [!FT_LONG64]: Simplify.
1358
1359 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1360 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1361 production of garbage by missing lots of segments.
1362
1363 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1364
1365 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1366 [AF_DEBUG]: Set _af_debug_hints.
1367
1368
1369 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1370 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1371 and ft_corner_orientation.
1372
1373
1374 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001375
Werner Lemberge88c5262006-10-24 05:46:26 +000013762006-10-24 Werner Lemberg <wl@gnu.org>
1377
1378 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1379
1380 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1381 as argument.
1382
David Turnera1861392006-10-23 16:00:59 +000013832006-10-23 Zhe Su <zsu@novell.com>
1384
Werner Lemberg715e96e2006-10-24 05:28:45 +00001385 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1386 better deal with broken Asian fonts with strange glyphs, having
1387 self-intersections and other peculiarities. The used algorithm is
1388 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001389
David Turnere140f142006-10-23 08:56:57 +000013902006-10-23 David Turner <david@freetype.org>
1391
Werner Lemberg715e96e2006-10-24 05:28:45 +00001392 Speed up the CFF font loader. With some large CFF fonts,
1393 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001394
Werner Lemberg715e96e2006-10-24 05:28:45 +00001395 * src/cff/cffload.c (cff_get_offset): Removed.
1396 (cff_new_index): Inline functionality of `cff_get_offset'.
1397 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1398 (cff_charset_done): Call `cff_charset_free_cids'.
1399 (cff_charset_load): Call `cff_charset_compute_cids'.
1400 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1401
1402 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1403 with FT_NEXT_XXX.
1404
1405
1406 Speed up the Postscript hinter, with more than 100% speed increase
1407 on my machine.
1408
1409 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1410 psh_corner_orientation): New functions.
1411 (psh_glyph_compute_inflections): Merge loops for efficiency.
1412 Use `psh_corner_orientation'.
1413 (psh_glyph_init): Use `psh_corner_is_flat'.
1414 (psh_hint_table_find_strong_point): Renamed to...
1415 (psh_hint_table_find_strong_points): This.
1416 Rewrite, adding argument to handle all points at once.
1417 Update all callers.
1418 (PSH_MAX_STRONG_INTERNAL): New macro.
1419 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001420
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000014212006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1422
1423 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001424 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001425
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014262006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1427
1428 * docs/INSTALL.CROSS: New document file for cross-building.
1429
1430 * builds/unix/configure.raw: Preliminary cross-building support.
1431 Find native C compiler and pass it by CC_BUILD, and
1432 find suffix for native executable and pass it by EXEEXT_BUILD.
1433 Also suffix for target executable is passed by EXEEXT.
1434
Werner Lembergb9e6d692006-10-15 08:58:40 +00001435 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1436 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001437 CC_BUILD and EXEEXT_BUILD.
1438
Werner Lembergb9e6d692006-10-15 08:58:40 +00001439 * builds/exports.mk (APINAMES_EXE): Change the extension for
1440 apinames from the suffix for target (E) to that for building host
1441 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001442
Werner Lemberg82a07e92006-10-12 06:20:44 +000014432006-10-12 Werner Lemberg <wl@gnu.org>
1444
1445 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1446 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1447 which reference those files.
1448
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014492006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1450
Werner Lembergb9e6d692006-10-15 08:58:40 +00001451 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1452 embedded in freetype2.pc and freetype-config. Use it to record
1453 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001454
1455 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1456
1457 * builds/unix/freetype-config.in: Ditto.
1458
Werner Lemberg28e17d92006-10-11 17:27:47 +000014592006-10-11 Werner Lemberg <wl@gnu.org>
1460
1461 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1462 development.
1463
Jens Claudius336d2292006-10-03 08:53:37 +000014642006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1465
1466 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1467 argument to ft_setjmp.
1468
1469 * include/freetype/internal/ftvalid.h: Add comment that
1470 ft_validator_run must not be used.
1471
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014722006-10-01 Werner Lemberg <wl@gnu.org>
1473
1474 * src/base/ftbase.c: Undo change from 2006-09-30.
1475
1476 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1477
14782006-09-30 David Turner <david@freetype.org>
1479
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001480 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1481 s/unpatented_hinting/ignore_unpatented_hinter/.
1482 Update all callers.
1483
1484 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1485 auto-hinting shall be used or not.
1486
1487 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001488
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014892006-09-30 Werner Lemberg <wl@gnu.org>
1490
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001491 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1492 in use).
1493
1494 * src/base/ftbase.c: Include `ftlcdfil.c'.
1495
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014962006-09-29 Werner Lemberg <wl@gnu.org>
1497
1498 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1499 overlapping segments. Bug reported by Stefan Koch.
1500
David Turnerad830712006-09-27 16:20:59 +000015012006-09-28 David Turner <david@freetype.org>
1502
Werner Lemberg2c002e12006-09-29 21:31:53 +00001503 Fix a bug in the automatic unpatented hinting support which prevents
1504 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001505
Werner Lemberg2c002e12006-09-29 21:31:53 +00001506 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1507 s/force_autohint/unpatented_hinting/. Update all callers.
1508
1509 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1510
1511 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001512
David Turner8a317cf2006-09-27 07:52:48 +000015132006-09-27 David Turner <david@freetype.org>
1514
Werner Lemberg2c002e12006-09-29 21:31:53 +00001515 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001516
David Turner8a317cf2006-09-27 07:52:48 +00001517
David Turnere140f142006-10-23 08:56:57 +00001518 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001519 In a default build, the function `FT_Library_SetLcdFilter' returns
1520 `FT_Err_Unimplemented_Feature'; you need to #define
1521 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1522 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001523
Werner Lemberg2c002e12006-09-29 21:31:53 +00001524 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001525
Werner Lemberg2c002e12006-09-29 21:31:53 +00001526 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1527 typedef.
1528 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1529 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001530
Werner Lemberg2c002e12006-09-29 21:31:53 +00001531 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1532 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001533
Werner Lemberg2c002e12006-09-29 21:31:53 +00001534 Handle subpixel rendering.
1535 Simplify function.
1536 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1537 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1538
1539 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1540 pointing to <freetype/ftlcdfil.h>.
1541
1542 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1543 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1544
1545 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001546
Werner Lemberge20df4a2006-09-27 06:29:21 +000015472006-09-26 David Bustin
1548
1549 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1550 correctly. Reported as Savannah bug #17843.
1551
David Turner6f8c6222006-09-26 15:42:44 +000015522006-09-26 David Turner <david@freetype.org>
1553
Werner Lemberg110246c2006-09-26 21:55:44 +00001554 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1555 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1556 horizontal and vertical hinting for the purpose of debugging the
1557 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001558
Werner Lemberg110246c2006-09-26 21:55:44 +00001559 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1560 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001561
Werner Lemberg110246c2006-09-26 21:55:44 +00001562 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1563
1564 * include/freetype/config/ftoption.h, devel/ftoption.h
1565 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1566 we want to compile LCD-optimized rendering code (à la ClearType) or
1567 not. The macro *must* be disabled in default builds of the library
1568 for patent reasons.
1569
1570 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1571 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1572 isn't defined at compile time. This only changes the content of the
1573 rendered glyph to match the one of normal gray-level rendering,
1574 hence clients should not need to be modified.
1575
1576 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001577
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015782006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1579
1580 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1581 LWFN fails and both are available.
1582
David Turnerf3050052006-09-11 12:00:32 +000015832006-09-11 David Turner <david@freetype.org>
1584
Werner Lembergf9644552006-09-12 13:48:10 +00001585 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1586 report their English names through an Apple Roman
1587 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001588
Werner Lembergf9644552006-09-12 13:48:10 +00001589 If the font uses another name entry with language_id == English, it
1590 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001591
Werner Lembergf9644552006-09-12 13:48:10 +00001592 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1593 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001594
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015952006-09-05 Werner Lemberg <wl@gnu.org>
1596
1597 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001598 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001599 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1600 `HAN NOM B.ttf').
1601
1602 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1603
David Turner772e55d2006-09-05 09:45:15 +000016042006-09-05 David Turner <david@freetype.org>
1605
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001606 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001607
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001608 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1609 (TRaster): Remove `count_ex' and `count_ey'.
1610 (gray_find_cell): Remove 2nd and 3rd argument.
1611 (gray_alloc_cell): Merged with `gray_find_cell'.
1612 (gray_record_cell): Simplify.
1613 (gray_set_cell): Rewrite.
1614 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1615 (gray_render_span): Don't use FT_MEM_SET for small values.
1616 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1617 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1618 bitmap scanline.
1619 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001620
David Turneraa557a92006-09-04 16:42:44 +000016212006-09-04 David Turner <david@freetype.org>
1622
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001623 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1624 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001625
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016262006-09-03 Werner Lemberg <wl@gnu.org>
1627
1628 * devel/ftoption.h: Synchronize with
1629 include/freetype/config/ftoption.h.
1630
1631 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1632 variable declaration.
1633 (gray_convert_glyph): Fix compiler warnings.
1634
David Turner6d79f212006-09-01 14:09:35 +000016352006-09-01 David Turner <david@freetype.org>
1636
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001637 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1638 to recognize a few fonts that require the automatic unpatented
1639 loader.
David Turnerbd502952006-09-01 19:05:24 +00001640
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001641 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1642 rasterizer. The speed improvement is between 15% and 25%, depending
1643 on the font data.
1644
1645 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1646 (TCell): Redefine.
1647 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1648 (gray_init_cells): Updated.
1649 (gray_find_cell, gray_alloc_cell): New functions.
1650 (gray_record_cell): Rewritten to use `gray_find_cell' and
1651 `gray_alloc_cell'.
1652 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1653 QSORT_THRESHOLD):
1654 Removed.
1655 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1656 gray_dump_cells): Removed.
1657 (gray_sweep): Rewritten.
1658 (gray_convert_glyph): Rewrite code which used one of the sorting
1659 functions.
1660 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001661
Werner Lembergd898aed2006-08-29 09:50:34 +000016622006-08-29 Dr. Werner Fink <werner@suse.de>
1663
1664 * configure: Make it possible to handle configure options which
1665 have strings containing spaces.
1666
16672006-08-27 David Turner <david@freetype.org>
1668
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001669 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1670 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1671 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1672
1673 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1674 src/truetype/truetype.c, src/truetype/ttdriver.c,
1675 src/truetype/ttgload.c, src/truetype/ttgload.h,
1676 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1677 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1678 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1679
1680 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1681 member `force_autohint'.
1682
1683 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1684
1685 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1686 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001687
Jens Claudiusa787f452006-08-27 11:26:18 +000016882006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1689
1690 Fix miscellaneous compiler warnings.
1691
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001692 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1693 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001694
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001695 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1696 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1697 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001698
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001699 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1700 volatileness of argument to ft_longjmp. Spotted by Werner
1701 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001702
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001703 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1704 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001705
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001706 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1707 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001708
Werner Lembergc4c35b72006-08-27 08:03:46 +000017092006-08-27 Werner Lemberg <wl@gnu.org>
1710
1711 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1712 Reported by Jens.
1713
Jens Claudius088e44e2006-08-22 14:24:30 +000017142006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001715
Jens Claudius088e44e2006-08-22 14:24:30 +00001716 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001717 about addresses of volatile objects passed as function arguments as
1718 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001719
Werner Lembergc4c35b72006-08-27 08:03:46 +00001720 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1721 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001722
1723 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1724 argument `table' a pointer to a volatile object.
1725
1726 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1727 argument `table' a pointer to a volatile object.
1728
Jens Claudius2652bd52006-08-18 17:20:37 +000017292006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1730
1731 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1732 variable `_sfnt' as volatile since it must keep its value across
1733 a call to ft_setjmp.
1734 (gxv_validate): Same for local variables `memory' and `valid'.
1735 (classic_kern_validate): Same for local variables `memory',
1736 `ckern', and `valid'.
1737
1738 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1739 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1740 `jstf', and 'valid'.
1741
1742 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1743 local variable `cmap'.
1744
David Turner9fbfc6a2006-08-16 09:11:31 +000017452006-08-16 David Turner <david@freetype.org>
1746
Werner Lemberg12342992006-08-19 11:18:09 +00001747 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1748 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001749
Werner Lemberg12342992006-08-19 11:18:09 +00001750 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1751 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001752
David Turner33f5f242006-08-16 16:50:55 +00001753
Werner Lemberg12342992006-08-19 11:18:09 +00001754 Improvements to native TrueType hinting. This is a first try,
1755 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1756
1757 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1758 `extra_points2'.
1759
1760 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1761 `orus'.
1762
1763 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1764 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1765 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1766 handle `extra_points2'.
1767
1768 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1769 Remove compiler warning.
1770 (cur_to_arg): Remove macro.
1771 (TT_Hint_Glyph): Updated.
1772 (TT_Process_Simple_Glyph): Handle `orus'.
1773
1774 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1775 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1776 (LOC_Ins_IUP): Renamed to...
1777 (IUP_WorkerRec): This.
1778 Add `orus' member.
1779 (Shift): Renamed to...
1780 (_iup_worker_shift): This.
1781 Updated.
1782 (Interp): Renamed to...
1783 (_iup_worker_interpolate): This.
1784 Updated to handle `orus'.
1785 (Ins_IUP): Updated.
1786
1787 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1788 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001789
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017902006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1791
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001792 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001793 build ftvalid in ft2demos. This has been inadvertedly changed
1794 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001795
17962006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1797
Werner Lemberg12342992006-08-19 11:18:09 +00001798 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1799 Jens:
1800 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001801
Werner Lemberg12342992006-08-19 11:18:09 +00001802 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1803 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001804
1805 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1806
Jens Claudius9950adc2006-08-13 12:14:36 +000018072006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1808
Werner Lemberg12342992006-08-19 11:18:09 +00001809 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1810 T1_TOKEN_TYPE_KEY.
1811 (T1_FieldRec): Add `dict'.
1812 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1813 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1814 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001815
Werner Lemberg12342992006-08-19 11:18:09 +00001816 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1817 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001818
1819 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1820
1821 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001822 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1823 not T1_TOKEN_TYPE_ANY.
1824 (ps_parser_load_field): Make sure a token that should be a string or
1825 name is really a string or name.
1826 Avoid memory leak if a keyword has been already encountered and its
1827 value is overwritten.
1828 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1829 T1_FIELD_XXX.
1830 (parse_dict): Ignore keywords that occur in the wrong dictionary
1831 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001832
Werner Lemberg12342992006-08-19 11:18:09 +00001833 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1834 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001835
Werner Lemberg12342992006-08-19 11:18:09 +00001836 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1837 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001838
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000018392006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1840
1841 Move creation of field `buildchar' of T1_DecoderRec out of
1842 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1843 of it.
1844
1845 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1846 and `T1_Compute_Max_Advance'.
1847
1848 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1849 Remove field `face', add `len_buildchar'.
1850
1851 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1852 field `buildchar'.
1853
1854 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1855 finisher for T1_Decoder.
1856 (cid_slot_load_glyph): Do not ignore failure when initializing the
1857 T1_Decoder.
1858
1859 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1860 Updated.
1861 (t1_decoder_init): Remove initialization of fields `buildchar' and
1862 `len_buildchar'.
1863 (t1_decoder_done): Remove deallocation of field `buildchar'.
1864
1865 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1866 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1867 T1_Decoder.
1868 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1869 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1870 case of error.
1871
1872 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1873 `buildchar' of T1_FaceRec.
1874
1875 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1876 `buildchar' of T1_FaceRec.
1877
Werner Lemberg1a380e02006-07-14 18:28:08 +000018782006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1879
1880 * freetype2/include/freetype/internal/psaux.h: New macros
1881 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1882 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1883 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1884 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1885 (T1_DecoderRec): New fields `buildchar' and `face'.
1886 (IS_PS_TOKEN): New macro.
1887
1888 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1889 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1890
1891 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1892 `default_design_vector' and `num_default_design_vector'.
1893
1894 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1895 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1896 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1897
1898 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1899 `token' argument to be NULL if we want only to count the number of
1900 tokens.
1901 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1902 want to skip the array.
1903 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1904 want to skip the array.
1905
1906 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1907 support for (partially commented out) othersubrs 19-25, 27, and 28.
1908 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1909 (t1_decoder_done): Release new field `buildchar'.
1910
1911 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1912 functions.
1913 (t1_keywords): Register them.
1914 (t1_allocate_blend): Updated.
1915 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1916 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1917 (parse_dict): Remove `keyword_flags' argument.
1918 Use new macro IS_PS_TOKEN.
1919 Changed function so that later PostScript definitions override
1920 earlier ones.
1921 (t1_init_loader): Initialize new field `keywords_encountered'.
1922 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1923 `len_buildchar'.
1924 Remove `keywords_flags'.
1925
1926 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1927 `keywords_encountered'.
1928 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1929
1930 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1931 New entries for parsing /NDV, /CDV, and /DesignVector.
1932
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000019332006-07-07 Werner Lemberg <wl@gnu.org>
1934
1935 Add many checks to protect against malformed PCF files.
1936
1937 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1938 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1939
1940 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1941 data and check that tables don't overlap (using a simple
1942 bubblesort).
1943 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1944 New macros which give the size of data structures in the data
1945 stream.
1946 (pcf_get_properties): Use rough estimates to get array size limits.
1947 Assign `face->nprops' and `face->properties' earlier so that a call
1948 to PCF_Face_Done can do the clean-up in case of error.
1949 Protect against invalid string offsets.
1950 (pcf_get_metrics): Clean up code.
1951 Adjust tracing message levels.
1952 Use rough estimate to get array size limit.
1953 (pcf_get_bitmaps): Clean up code.
1954 Adjust tracing message levels.
1955 Use rough estimates to get offset limits.
1956 (pcf_get_encodings): Adjust tracing message level.
1957 (pcf_get_accel): Clean up code.
1958
Werner Lemberg8eb05252006-06-27 06:20:01 +000019592006-06-26 Werner Lemberg <wl@gnu.org>
1960
1961 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1962 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1963
Werner Lemberg24703f82006-06-26 19:12:51 +000019642006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1965
1966 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1967 (t1_decoder_parse_charstrings): Operator with
1968 opcode 15 pops its two arguments.
1969 Handle the case where the pops of an othersubr may be part of a
1970 subroutine.
1971 Handle unknown othersubrs gracefully: count their operands and let
1972 the following pop operators push the operands as the results onto
1973 the Type1 stack.
1974 Improve handling of setcurrentpoint opcode.
1975
Werner Lembergc011f4c2006-06-26 09:40:00 +000019762006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1977
1978 The Type 1 parser now skips over top-level procedures as required
1979 for a `Simplified Parser'. This makes the parser more robust as it
1980 doesn't poke around in PostScript code. Additionally, it makes the
1981 FontDirectory hackery in src/type1/t1load.c unnecessary.
1982
1983 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1984 (skip_literal_string): Add FT_Error as return value.
1985 Handle escapes better.
1986 (skip_string): Add FT_Error as return value.
1987 Don't set `parser->error' but return error code directly.
1988 (skip_procedure): New function.
1989 (ps_parser_skip_PS_token): Handle procedures.
1990 Update code.
1991 (ps_parser_to_token): Update code.
1992 (ps_parser_load_field_table): Handle bbox entries also.
1993
1994 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1995 Add commented-out code for synthetic fonts.
1996
Werner Lemberga2da05c2006-06-25 06:27:27 +000019972006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1998
1999 Fix two hinting bugs as reported in
2000 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2001
2002 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2003 `first_point' member.
2004
2005 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2006 `first_point'.
2007 (TT_Process_Composite_Glyph): Always untouch points.
2008
2009 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2010 `first_point' and `last_point' in case of composite glyphs.
2011 (Ins_IUP): Fix computation of `end_point'.
2012
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020132006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2014
Werner Lembergef3d2c22006-06-25 06:07:14 +00002015 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2016 Mac. The original patch was written by David Sachitano and Lawrence
2017 Coopet, and modified by Sean McBride for MPW compatibility. Only
2018 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002019
Werner Lembergef3d2c22006-06-25 06:07:14 +00002020 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2021 Mac OS X platforms.
2022 (OS_INLINE): Undefine before definition.
2023 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2024 FontAssociation table in FOND resource.
2025 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2026 and fontSize at each entry of FontAssociation table in FOND
2027 resource.
2028 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2029 ffStylOff of FamilyRecord header of FOND resource, the header,
2030 fontSize, fontID at each entry of FontAssociation table, and
2031 StyleMapping table.
2032 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002033
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000020342006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2035
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002036 Public API of TrueTypeGX, OpenType, and classic kern table validator
2037 should return `FT_Err_Unimplemented_Feature' if validation service
2038 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002039 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002040 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2041
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002042 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2043 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2044 unavailable.
2045 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2046 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002047
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002048 * src/base/ftotval.c (FT_OpenType_Validate): Return
2049 FT_Err_Unimplemented_Feature if OpenType validation service is
2050 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002051
Werner Lembergb10e45a2006-06-08 07:32:56 +000020522006-06-08 Werner Lemberg <wl@gnu.org>
2053
2054 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2055 errors.
2056
David Turner5f1f7502006-06-07 05:11:50 +000020572006-06-07 David Turner <david@freetype.org>
2058
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002059 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2060 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2061 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002062
David Turner457b4a82006-06-06 08:14:14 +000020632006-06-06 David Turner <david@freetype.org>
2064
Werner Lemberg4836f952006-06-06 12:54:08 +00002065 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002066
Werner Lemberg4836f952006-06-06 12:54:08 +00002067 We change `ps_unicodes_init' so that it also takes a
2068 `free_glyph_name' callback to release the glyph names returned by
2069 `get_glyph_name'
2070
2071 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2072 Renamed to ...
2073 (PS_GetGlyphNameFunc): This.
2074 (PS_FreeGlyphNameFunc): New typedef.
2075 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2076
2077 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2078 argument.
2079 (cff_sid_free_glyph_name): New function.
2080 (cff_cmap_unicode_init): Updated.
2081
2082 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2083
2084 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2085 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002086
2087
David Turner09717352006-06-04 14:33:08 +000020882006-06-04 David Turner <david@freetype.org>
2089
Werner Lembergd724f202006-06-04 15:17:41 +00002090 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2091 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002092 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002093
Werner Lembergd724f202006-06-04 15:17:41 +00002094 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2095 of `face->num_glyphs' which missed the last glyph, due to
2096 the offset-by-1 computation, since the PFR format doesn't
2097 guarantee that glyph index 0 corresponds to the `missing
2098 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002099
Werner Lemberg33779662006-05-26 06:30:05 +000021002006-05-25 Werner Lemberg <wl@gnu.org>
2101
2102 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2103 `-no-undefined'. Reported by Christian Biesinger.
2104
Werner Lemberg24773d62006-05-20 08:53:13 +000021052006-05-19 Brian Weed <bw@imaginengine.com>
2106
2107 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2108 have debug information, and debug libraries use `C7 compatible'
2109 debug info.
2110
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021112006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2112
Werner Lemberga6523a62006-05-20 08:47:01 +00002113 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002114 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002115
Werner Lemberga6523a62006-05-20 08:47:01 +00002116 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2117 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002118
2119 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002120 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002121
21222006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2123
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002124 * build/unix/configure.raw: Add a fallback to disable Carbon
2125 dependency, if configured with no options on Mac OS X.
2126
21272006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2128
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002129 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002130 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002131 the second part of Savannah bug #16590.
2132
Werner Lemberg545c4e52006-05-17 22:55:04 +000021332006-05-18 Werner Lemberg <wl@gnu.org>
2134
2135 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2136 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2137
David Turnerdc3ff312006-05-17 12:59:35 +000021382006-05-17 David Turner <david@freetype.org>
2139
Werner Lemberg545c4e52006-05-17 22:55:04 +00002140 This is a major patch used to drastically improve the performance of
2141 loading glyphs. This both speeds up loading the glyph vectors
2142 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002143
Werner Lemberg545c4e52006-05-17 22:55:04 +00002144 We now use inline assembler code with GCC to implement `FT_MulFix',
2145 which is probably the most important function related to the
2146 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002147
Werner Lemberg545c4e52006-05-17 22:55:04 +00002148 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002149
2150
Werner Lemberg545c4e52006-05-17 22:55:04 +00002151 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2152 `cursor' and `limit'.
2153
2154 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2155 New functions.
2156 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2157 [TEST]: Remove.
2158
2159 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2160 code.
2161
2162 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2163 `FT_ZERO'
2164 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2165 (af_glyph_hints_reload: Rewrite recognition of weak points.
2166
2167 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2168 constant values out of the loops.
2169
2170 * src/autofit/aftypes.h: Updated.
2171
2172 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2173
2174 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2175 product to get orientation.
2176
2177 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2178 (FT_Stream_OpenGzip): Use it to handle small files directly in
2179 memory.
2180
2181 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2182 Improve performance.
2183
2184 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2185 `limit'.
2186
2187 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2188 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2189 exceedingly large values of number of contours. Speed up by
2190 reducing the number of loops.
2191
2192 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2193
2194
2195 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2196 used to detect rogue clients from 4 to 16. This is to prevent some
2197 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2198 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002199
Werner Lembergde2d90a2006-05-17 08:54:30 +000022002007-05-17 Werner Lemberg <wl@gnu.org>
2201
2202 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002203 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002204
22052006-05-16 Werner Lemberg <wl@gnu.org>
2206
2207 * docs/PROBLEMS: Updated icl issues.
2208
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002209----------------------------------------------------------------------------
2210
Werner Lemberg42b63b22007-01-21 21:01:33 +00002211Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002212David Turner, Robert Wilhelm, and Werner Lemberg.
2213
2214This file is part of the FreeType project, and may only be used, modified,
2215and distributed under the terms of the FreeType project license,
2216LICENSE.TXT. By continuing to use, modify, or distribute this file you
2217indicate that you have read the license and understand and accept it
2218fully.
2219
2220
2221Local Variables:
2222version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002223coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002224End: