blob: 6f8aa549c6adec3a01a43e916997a63460a9d048 [file] [log] [blame]
David Turner84c6f882007-06-10 20:51:04 +000012007-06-10 David Turner <david@freetype.org>
2
3 * include/freetype/config/ftoption.h: clarify documentation regarding
4 unpatented hinting
5
6 * include/freetype/freetype.h, src/base/ftpatent.c, src/truetype/ttdriver.c,
7 include/freetype/internal/services/svttglyf.h, modules.cfg,:
8 include/freetype/internal/ftserv.h,:
9 Fonts without a cmap must be handled correctly by FreeType (anything
10 Adding the FT_Face_CheckTrueTypePatents API to FT_FREETYPE_H, it is
11 implemented by the optional src/base/ftpatent.c
12
Werner Lemberg33db39e2007-06-08 06:30:29 +0000132007-06-08 Werner Lemberg <wl@gnu.org>
14
David Turner84c6f882007-06-10 20:51:04 +000015 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +000016 Fonts without a cmap must be handled correctly by FreeType (anything
17 else would be a bug).
18
19
20 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
21 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
22
Werner Lemberg88ab6382007-06-07 05:01:56 +0000232007-06-07 Werner Lemberg <wl@gnu.org>
24
25 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
26 tt_sbit_decoder_load_image): Protect against integer overflows.
27
28
29 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
30 for `x_control' and `y_control'.
31
Werner Lemberg2a2dca62007-06-06 04:39:37 +0000322007-06-06 Werner Lemberg <wl@gnu.org>
33
34 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
35
Werner Lemberga8d65492007-06-06 04:47:49 +000036
37 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
38 FreeType error.
39
Werner Lemberg470210b2007-06-06 10:05:49 +000040
41 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
42 `font_count'.
43
44
45 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
46
47
48 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
49 `FT_Error'.
50 Check `fd_index'.
51 (cff_slot_load): Updated.
52 * src/cff/cffgload.h: Updated.
53
Werner Lemberg6c054752007-06-05 05:27:54 +0000542007-06-05 Werner Lemberg <wl@gnu.org>
55
56 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
57 (pfr_glyph_load_simple): Convert assertion into normal FreeType
58 error.
59 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000060 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
61 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000062
63 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
64
Werner Lembergf4bc3f42007-06-05 07:32:15 +000065
Werner Lemberg470210b2007-06-06 10:05:49 +000066 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +000067
Werner Lemberge5c14d92007-06-05 20:50:37 +000068
69 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
70 in case of parsing error.
71 (ps_parser_load_field): Updated.
72
73 * src/type1/t1load.c (parse_font_matrix): Updated.
74
Werner Lembergad18b362007-06-04 07:04:05 +0000752007-06-04 Werner Lemberg <wl@gnu.org>
76
77 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
78
79 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
80
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000812007-06-03 Werner Lemberg <wl@gnu.org>
82
Werner Lemberg99a320b2007-06-03 19:21:26 +000083 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
84 George Williams (with some modifications).
85
862007-06-03 Werner Lemberg <wl@gnu.org>
87
Werner Lemberg3d507fe2007-06-03 16:54:55 +000088 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
89 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
90 face == NULL. Suggested by Graham Asher.
91
Werner Lembergce280a22007-06-03 05:58:30 +0000922007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
93
94 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
95
Werner Lemberg5b591e42007-06-01 22:16:43 +0000962007-06-02 Werner Lemberg <wl@gnu.org>
97
98 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
99 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
100
101 * src/bdf/bdflib.c (bdf_load_font): Use them.
102
103 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
104
Werner Lembergb9933f42007-06-01 21:27:12 +00001052007-06-01 Werner Lemberg <wl@gnu.org>
106
107 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
108 (FTC_CMapCache_Lookup): Remove unused code.
109
Werner Lembergc793d902007-06-01 20:51:11 +00001102007-06-01 Sean McBride <sean@rogue-research.com>
111
112 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
113 unused.
114
Werner Lembergbebc7b12007-06-01 06:32:30 +00001152007-06-01 Werner Lemberg <wl@gnu.org>
116
117 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
118 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000119 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000120
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000121 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
122 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
123
Werner Lembergba03af62007-05-30 13:57:02 +00001242007-05-30 Werner Lemberg <wl@gnu.org>
125
126 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
127 against too small binary data strings.
128
129 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
130
David Turnerf0cd69c2007-05-28 15:42:09 +00001312007-05-28 David Turner <david@freetype.org>
132
Werner Lemberg99e0c182007-05-29 07:00:23 +0000133 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
134 transformation. This significantly reduces the loading time of CFF
135 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000136
Werner Lemberg99e0c182007-05-29 07:00:23 +0000137 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000138
Werner Lemberg99e0c182007-05-29 07:00:23 +0000139 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
140 hinting script to CJK, since it works well with more scripts than
141 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
142 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000143
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001442007-05-25 Werner Lemberg <wl@gnu.org>
145
146 * docs/CHANGES: Updated.
147
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001482007-05-24 Werner Lemberg <wl@gnu.org>
149
150 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
151 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
152
1532007-05-24 Graham Asher <graham.asher@btinternet.com>
154
155 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
156 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
157
David Turner0d0365e2007-05-22 09:53:44 +00001582007-05-22 David Turner <david@freetype.org>
159
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000160 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
161 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000162
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000163
164 Avoid heap blowup with very large .Z font files. This fixes
165 Savannah bug #19910.
166
167 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
168 `in_limit', `pad', `pad_bits', and `in_buff' members.
169 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
170 `buf_total' members.
171
172 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
173 only one argument.
174 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000175
1762007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000177
178 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
179 (ps_dimension_set_mask_bits): Remove `const'.
180
David Turner0d0365e2007-05-22 09:53:44 +00001812007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000182
183 * src/sfnt/ttmtx.c (tt_face_get_metrics)
184 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
185
Werner Lembergb826fa72007-05-19 07:18:48 +00001862007-05-19 Derek Clegg <dclegg@apple.com>
187
188 Savannah patch #5929.
189
190 * include/freetype/tttables.h, src/base/ftobjcs.c
191 (FT_Get_CMap_Format): New function.
192
193 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
194 `format' member.
195 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
196 cmap_info->format.
197
Werner Lemberg6f99c882007-05-19 07:01:49 +00001982007-05-19 Werner Lemberg <wl@gnu.org>
199
200 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
201 before handling subglyphs so that it can be reinitialized each time.
202 This fixes Savannah bug #19859.
203
Werner Lemberg95bc9d32007-05-16 15:19:42 +00002042007-05-16 Werner Lemberg <wl@gnu.org>
205
206 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
207 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
208 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
209 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
210 tt_face_get_metrics): Fix type-punning issues.
211
David Turner0a24bd22007-05-15 10:54:10 +00002122007-05-15 David Turner <david@freetype.org>
213
214 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000215 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
216 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000217 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000218 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000219
Werner Lemberg607dec72007-05-15 06:49:37 +00002202007-05-15 Graham Asher <graham.asher@btinternet.com>
221
222 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
223 variable.
224 * src/autofit/afloader.c (af_loader_load_g): Ditto.
225
226 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
227 (open_face_from_buffer): Initialize `stream'.
228 (FT_Request_Metrics): Remove unused variable.
229 Remove redundant `break' statements.
230 (FT_Get_Track_Kerning): Remove unused variable.
231
232 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
233 afm_parse_kern_data): Remove redundant
234 `break' statements.
235 (afm_parser_parse): Ditto.
236 Don't use uninitialized variables.
237
238 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
239 Use `|' operator instead of `^' to set it.
240 Update all users.
241
242 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
243 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
244
245 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
246 comparison.
247 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
248 (TT_Load_Glyph): Remove unused variable.
249
Werner Lemberg8d463a52007-05-13 16:01:55 +00002502007-05-13 Derek Clegg <dclegg@apple.com>
251
252 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
253 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
254
David Turner711cf842007-05-11 14:36:24 +00002552007-05-11 David Turner <david@freetype.org>
256
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000257 * src/cache/ftbasic.c, include/freetype/ftcache.h
258 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
259 functions that allow us to look up glyphs using an FTC_Scaler object
260 to specify the size, making it possible to use fractional pixel
261 sizes.
262
263 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
264 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000265
Werner Lemberg94be20e2007-05-09 20:02:55 +00002662007-05-09 Graham Asher <graham.asher@btinternet.com>
267
268 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
269 (af_latin_metrics_scale_dim): Fix compiler warnings.
270
Werner Lemberg41271032007-05-06 04:51:48 +00002712007-05-06 Werner Lemberg <wl@gnu.org>
272
273 * builds/win32/visualce/freetype.sln: Removed, as requested by
274 Vincent.
275
Werner Lembergdf49e692007-05-04 06:30:05 +00002762007-05-04 Vincent RICHOMME <richom.v@free.fr>
277
278 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
279 PC targets.
280
281 * docs/CHANGES: Document them.
282
2832007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000284
285 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
286 mmap (which might happen on some RTOS). From Savannah patch #5909.
287
Werner Lemberg106eaf12007-05-03 07:07:47 +00002882007-05-03 Werner Lemberg <wl@gnu.org>
289
290 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
291 * include/freetype/freetype.h (FT_Set_Char_Size): Update
292 documentation.
293
Werner Lemberg1b5267d2007-04-28 21:06:15 +00002942007-04-28 Victor Stinner <victor.stinner@inl.fr>
295
296 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
297 `cmap'.
298
Werner Lembergcc712a22007-04-27 17:16:50 +00002992007-04-27 Werner Lemberg <wl@gnu.org>
300
301 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
302 number of points in contours. Problem reported by Victor Stinner
303 <victor.stinner@haypocalc.com>.
304 (TT_Process_Simple_Glyph): Synchronize variable types.
305
Werner Lemberg45bb18f2007-04-26 06:26:35 +00003062007-04-26 Werner Lemberg <wl@gnu.org>
307
308 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
309 zero in case of error. This fixes Savannah bug #19689.
310
David Turnera8b45e62007-05-11 14:10:30 +00003112007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
312
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000313 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
314 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000315
Werner Lembergfcc1f472007-04-10 11:51:50 +00003162007-04-10 Martin Horak <horakm@centrum.cz>
317
318 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
319 Ignore `hhea' table. This fixes Savannah bug #19261.
320
Werner Lemberg14bf82e2007-04-10 04:09:49 +00003212007-04-09 Werner Lemberg <wl@gnu.org>
322
323 * Version 2.3.4 released.
324 =========================
325
326
327 Tag sources with `VER-2-3-4'.
328
329 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
330 version number to 2.3.4.
331
332 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
333 builds/win32/visualc/freetype.dsp,
334 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
335
336 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
337
338 * builds/unix/configure.raw (version_info): Set to 9:15:3.
339
Werner Lembergf4a52a62007-04-09 08:40:11 +00003402007-04-09 Martin Horak <horakm@centrum.cz>
341
342 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
343 memory stream to avoid a crash with the incremental memory
344 interface (Savannah bug #19260).
345
David Turner1dcb4442007-04-06 08:19:04 +00003462007-04-06 David Turner <david@freetype.org>
347
Werner Lembergc81cf612007-04-06 09:28:23 +0000348 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
349 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000350
Werner Lemberg9f83e052007-04-05 02:28:23 +00003512007-04-04 Werner Lemberg <wl@gnu.org>
352
353 * Version 2.3.3 released.
354 =========================
355
356
357 Tag sources with `VER-2-3-3'.
358
359 * docs/CHANGES: Mention CVE-2007-1351.
360
David Turner7338ec22007-04-03 14:30:34 +00003612007-04-03 David Turner <david@freetype.org>
362
363 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000364 if one of the resolution values is 0, treat it as if it were the
365 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000366
David Turnere6472c12007-04-02 13:13:54 +00003672007-04-02 David Turner <david@freetype.org>
368
Werner Lemberg94f12272007-04-03 07:19:53 +0000369 Add special code to detect `extra-light' fonts and do not snap their
370 stem widths too much to avoid bizarre hinting effects.
371
372 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
373 `extra_light' members.
374
375 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
376 them.
377 (af_latin_metrics_scale_dim): Set `extra_light'.
378 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000379
David Turner3f539692007-03-28 14:53:40 +00003802007-03-28 David Turner <david@freetype.org>
381
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000382 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000383 padding.
384
Werner Lemberga08b2172007-03-28 07:17:17 +00003852007-03-28 Werner Lemberg <wl@gnu.org>
386
387 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
388 gracefully.
389 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000390 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000391 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
392 number of code points in Unicode.
393
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000394 * builds/win32/visualc/index.html,
395 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000396 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000397 s/232/233/.
398
399 * docs/CHANGES: Mention ftdiff.
400
David Turner3b242d32007-03-26 12:03:04 +00004012007-03-26 David Turner <david@freetype.org>
402
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000403 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
404 corresponding code.
405 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000406
Werner Lemberga08b2172007-03-28 07:17:17 +0000407 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000408 computations in order to ignore single-point contours. These are
409 never rasterized and correspond in certain fonts to mark-attach
410 points that are very far from the glyph's real outline, ruining the
411 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000412
Werner Lemberga08b2172007-03-28 07:17:17 +0000413 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000414 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000415 Otherwise code that uses them will most certainly ruin the fixed
416 advance property.
David Turner23553d62007-03-26 13:37:17 +0000417
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000418 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
419 documentation and bump version number to 2.3.3.
420
421 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
422
423 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000424
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00004252007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
426
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000427 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
428 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000429 * builds/vms/ftconfig.h: Ditto.
430 * include/freetype/config/ftconfig.h: Ditto.
431
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004322007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
433
Werner Lemberg14ffe092007-03-22 06:12:43 +0000434 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
435 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000436 proposed by Sean McBride:
437 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
438
4392007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
440
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000441 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
442 setjmp, proposed by Sean McBride:
443 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
444
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004452007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
446
Werner Lembergc9f6c662007-03-21 13:30:14 +0000447 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
448 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
449 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000450
David Turner74c34eb2007-03-18 07:19:31 +00004512007-03-18 David Turner <david@freetype.org>
452
Werner Lembergc9f6c662007-03-21 13:30:14 +0000453 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
454 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000455
Werner Lembergc9f6c662007-03-21 13:30:14 +0000456 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000457
David Turner89020d92007-03-17 17:48:57 +00004582007-03-17 David Turner <david@freetype.org>
459
Werner Lembergc9f6c662007-03-21 13:30:14 +0000460 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
461 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000462
Werner Lemberg25d592a2007-03-09 07:59:35 +00004632007-03-09 Werner Lemberg <wl@gnu.org>
464
465 * Version 2.3.2 released.
466 =========================
467
468
469 Tag sources with `VER-2-3-2'.
470
471 * builds/win32/visualc/index.html,
472 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000473 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000474 s/231/232/.
475
David Turner3a51afa2007-03-08 10:50:38 +00004762007-03-08 David Turner <david@freetype.org>
477
Werner Lemberg25d592a2007-03-09 07:59:35 +0000478 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000479
Werner Lemberg25d592a2007-03-09 07:59:35 +0000480 * builds/unix/configure.raw (version_info): Set to 9:13:3.
481
482 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
483
484 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000485
Werner Lemberg1e259de2007-03-08 15:39:21 +0000486 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
487 function to work properly, over-writing user-provided buffers in
488 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000489
David Turner121cad52007-03-08 16:43:50 +0000490
Werner Lemberg3d92f082007-03-06 11:59:24 +00004912007-03-05 Werner Lemberg <wl@gnu.org>
492
493 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
494 macro for `strstr'.
495
496 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
497 `trick_names', as suggested by Ivan Nincic.
498
David Turner085bc6e2007-03-05 17:40:03 +00004992007-03-05 David Turner <david@freetype.org>
500
Werner Lembergd112cf02007-03-06 12:06:56 +0000501 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
502 case FT_Init_FreeType fails for some reason. Problem reported by
503 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000504
Werner Lembergd112cf02007-03-06 12:06:56 +0000505 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
506 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
507 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
508 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000509
Werner Lembergd112cf02007-03-06 12:06:56 +0000510 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
511 signed values, not unsigned ones. Problem reported by Johannes
512 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000513
David Turner601aefe2007-02-21 16:47:49 +00005142007-02-21 David Turner <david@freetype.org>
515
Werner Lembergde5e6862007-02-25 21:06:43 +0000516 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
517 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000518
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00005192007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
520
521 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
522 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
523 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
524
Werner Lemberga0915172007-02-16 08:12:50 +00005252007-02-16 Werner Lemberg <wl@gnu.org>
526
527 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
528 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
529
David Turner2c4500e2007-02-14 15:08:47 +00005302007-02-14 David Turner <david@freetype.org>
531
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000532 It seems that the following changes fix most of the known
533 interpreter problems with my fonts, but more testing is needed,
534 though.
535
536 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
537 (TT_MulFix14): Rewrite.
538 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
539 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000540
Werner Lembergc6a14082007-02-12 22:08:15 +00005412007-02-12 Werner Lemberg <wl@gnu.org>
542
543 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
544 warnings.
545
546 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
547 (bdf_interpret_style): Ditto.
548
David Turnerc0f9c4a2007-02-12 14:55:03 +00005492007-02-12 David Turner <david@freetype.org>
550
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000551 Simplify projection and dual-projection code interface.
552
Werner Lemberg406d25f2007-02-12 22:01:18 +0000553 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
554 FT_Vector' as argument type.
555 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
556 Updated.
557 (CUR_fast_project, CUR_fast_dualproj): New macros.
558 (Project, Dual_Project, Project_x, Project_y): Updated.
559 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
560 macros.
561
562
563 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
564 adjustments for the non-light auto-hinted modes. Gets rid of
565 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000566
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000567 * src/autofit/aflatin.c (af_latin_hints_link_segments,
568 af_latin_hints_compute_edges): Slight optimization of the segment
569 linker and better handling of serif segments to get rid of broken
570 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000571
David Turnerc0f9c4a2007-02-12 14:55:03 +0000572
Werner Lemberg442bfb82007-02-12 21:44:10 +0000573 Introduce new string functions and the corresponding macros to get
574 rid of various uses of strcpy and other `evil' functions, as well as
575 to simplify a few things.
576
577 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
578 ft_mem_strcpyn): New declarations.
579 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
580 macros.
581 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
582 functions.
583
584 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
585 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
586 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
587 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
588 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
589 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
590 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
591 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000592
Werner Lemberg406d25f2007-02-12 22:01:18 +0000593 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
594
Werner Lemberg582067d2007-02-11 15:03:05 +00005952007-02-11 Werner Lemberg <wl@gnu.org>
596
597 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
598 non-spacing glyphs.
599
Werner Lemberg8f474532007-02-07 08:31:01 +00006002007-02-07 Tom Parker <palfrey@tevp.net>
601
602 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
603 pointer.
604
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006052007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
606
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000607 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
608 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000609 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000610 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
611 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
612 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
613 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000614
615 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
616 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000617 * builds/mac/ftmac.c: Ditto.
618
6192007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
620
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000621 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000622 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000623 #include <ftmac.c>.
624
6252007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
626
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000627 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
628 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
629 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
630 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
631 FT_GetFilePath_From_Mac_ATS_Name.
632 * builds/mac/ftmac.c: Ditto.
633
6342007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
635
Werner Lembergdcbb7082007-02-08 08:54:09 +0000636 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000637 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
638 for passing to FT_New_Face_From_FSSpec.
639
6402007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
641
Werner Lembergdcbb7082007-02-08 08:54:09 +0000642 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000643 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000644
645 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
646 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000647 * builds/mac/ftmac.c (OS_INLINE): Ditto.
648
Werner Lemberg313d7772007-02-01 08:10:45 +00006492007-02-01 Werner Lemberg <wl@gnu.org>
650
651 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
652 Explain why applications shouldn't use it. Found by Alexei.
653
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006542007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000655
656 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
657 message.
658
659 * src/gxvalid/gxvmort1.c
660 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
661 message.
662
Werner Lemberg53935932007-01-31 08:53:02 +00006632007-01-31 Werner Lemberg <wl@gnu.org>
664
665
666 * Version 2.3.1 released.
667 =========================
668
669
670 Tag sources with `VER-2-3-1-FINAL'.
671
672 * builds/win32/visualc/freetype.dsp,
673 builds/win32/visualc/freetype.vcproj: s/230/231/.
674 * builds/win32/visualc/index.html: s/221/231/.
675
676 * vms_make.com: Add `ftgasp'.
677
David Turnera7ee6082007-01-30 10:33:53 +00006782007-01-30 David Turner <david@freetype.org>
679
Werner Lemberg53935932007-01-31 08:53:02 +0000680 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000681
Werner Lemberg53935932007-01-31 08:53:02 +0000682 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000683
Werner Lemberg25d592a2007-03-09 07:59:35 +0000684 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000685 s/2.3.0/2.3.1/.
686
687 * builds/unix/configure.raw (version_info): Set to 9:12:3.
688
689
690 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
691 (af_loader_load_g): Disable the warper (i.e., the light hinting
692 improvements) to make a 2.3.1 bugfix release before introducing a
693 new feature. This should give us more time to tune and improve the
694 warper for the next release.
695
696 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000697
David Turnerd91eebd2007-01-26 15:05:41 +00006982007-01-25 David Turner <david@freetype.org>
699
Werner Lembergbf241762007-01-26 16:08:49 +0000700 For light auto-hinting, improve glyph advance widths and resurrect
701 normal/full hinting to its normal quality.
702
703 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
704 and `xmax_delta'.
705 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
706 and `xmax_delta'.
707
708 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
709 preprocessor conditional with if-clause, handling both light and
710 normal mode.
711
712 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
713 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000714
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00007152007-01-25 Werner Lemberg <wl@gnu.org>
716
717 * docs/release: Updated -- Savannah uses a new uploading scheme.
718
David Turnera42567b2007-01-25 12:23:37 +00007192007-01-25 David Turner <david@freetype.org>
720
Werner Lembergd7855662007-01-25 13:53:56 +0000721 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000722
Werner Lembergd7855662007-01-25 13:53:56 +0000723 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
724 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
725 functions.
David Turnera42567b2007-01-25 12:23:37 +0000726
Werner Lembergd7855662007-01-25 13:53:56 +0000727 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000728
Werner Lembergb1be9e82007-01-25 11:50:00 +00007292007-01-25 Werner Lemberg <wl@gnu.org>
730
731 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000732 correctly in a sanity check. Since this function is only used to
733 load local and global functions, any charstring that called the last
734 local/global function would fail otherwise. This fixes Savannah bug
735 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000736
737 * docs/CHANGES: Document it.
738
David Turnerb6de8d12007-01-23 15:51:50 +00007392007-01-23 David Turner <david@freetype.org>
740
Werner Lembergb1be9e82007-01-25 11:50:00 +0000741 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
742 prevented compilation when disabling both the unpatented and the
743 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000744
Werner Lembergb1be9e82007-01-25 11:50:00 +0000745
746 Fix and enable the warper to improve `light' hinting mode. This is
747 not necessarily a final version, but it seems to work well.
748
749 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
750 Disable code.
751 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
752 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
753
754 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
755 (af_warper_compute_line_best): Fix array size of `scores'.
756 (af_warper_compute): Better handling of border cases.
757 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
758 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000759
Werner Lemberg011d1112007-01-21 09:36:00 +00007602007-01-21 Werner Lemberg <wl@gnu.org>
761
Werner Lemberg42b63b22007-01-21 21:01:33 +0000762 * ChangeLog: Split off older entries into...
763 * ChangeLog.22: This new file.
764
7652007-01-21 Werner Lemberg <wl@gnu.org>
766
Werner Lemberg555258f2007-01-21 09:46:37 +0000767 * docs/CHANGES: Document SHZ fix.
768
7692007-01-21 George Williams <gww@silcom.com>
770
771 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
772 points.
773
7742007-01-21 Werner Lemberg <wl@gnu.org>
775
Werner Lemberg011d1112007-01-21 09:36:00 +0000776 * src/sfnt/ttmtx.c (tt_face_get_metrics)
777 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
778
Werner Lemberg87a5a432007-01-17 12:44:39 +00007792007-01-17 Werner Lemberg <wl@gnu.org>
780
Werner Lembergb8003292007-01-17 12:56:25 +0000781
782 * Version 2.3.0 released.
783 =========================
784
785
786 Tag sources with `VER-2-3-0-FINAL'.
787
7882007-01-17 Werner Lemberg <wl@gnu.org>
789
Werner Lemberg87a5a432007-01-17 12:44:39 +0000790 * docs/release: Updated.
791
David Turner22122722007-01-16 20:06:44 +00007922007-01-16 David Turner <david@freetype.org>
793
Werner Lemberg87a5a432007-01-17 12:44:39 +0000794 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
795 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
796 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
797 warnings.
David Turner22122722007-01-16 20:06:44 +0000798
Werner Lemberg267e1d72007-01-15 07:48:09 +00007992007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
800
801 * builds/amiga/makefile, builds/amiga/makefile.os4,
802 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
803
804 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
805
Werner Lemberg8c4120d2007-01-15 06:42:40 +00008062007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
807
808 Fix various compiler warnings.
809
810 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
811 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
812 s/index/strike_index/.
813 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
814
815 * src/gxvalid/gxvmorx5.c
816 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
817
818 * src/truetype/ttinterp.c (Compute_Point_Displacement),
819 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
820 uninitialized variables.
821
Werner Lemberg6164a9d2007-01-13 23:01:36 +00008222007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
823
824 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
825
Werner Lemberg281c1482007-01-13 22:50:51 +00008262007-01-13 Werner Lemberg <wl@gnu.org>
827
828 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
829 versions up to 0x3FF without complaining.
830
Werner Lembergac250b22007-01-13 14:01:36 +00008312007-01-13 Derek Clegg <dclegg@apple.com>
832
833 Add FT_Get_PS_Font_Info interface to CFF driver.
834
835 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
836 (CFF_FontRec): Add `font_info' field.
837
838 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
839 (cff_font_done): Free font->font_info if necessary.
840
841 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
842 (cff_service_ps_info): Register cff_ps_get_font_info.
843
Werner Lemberg23df31a2007-01-13 08:45:00 +00008442007-01-13 Werner Lemberg <wl@gnu.org>
845
846 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
847 with C++ compiler.
848
849 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
850 af_glyph_hints_dump_edges): Ditto.
851
852 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
853 `modules.cfg').
854
855 * src/sfnt/ttsbit0.h: Remove.
856
857 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
858
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008592007-01-12 David Turner <david@freetype.org>
860
861 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
862 bug in the bitmap emboldener if the pitch of the source bitmap is
863 much larger than its width.
864
865 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
866 compilation warning.
867
Werner Lemberg6d96d312007-01-12 10:30:19 +00008682007-01-12 Werner Lemberg <wl@gnu.org>
869
870 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
871 `automake' CVS module from sources.redhat.com.
872
Werner Lemberg17432b52007-01-12 09:28:44 +00008732007-01-11 Werner Lemberg <wl@gnu.org>
874
875 * src/type1/t1load.c (is_space): Removed.
876 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
877 (parse_charstrings): Use IS_PS_TOKEN.
878
879
880 * autogen.sh: Avoid bash specific syntax.
881
David Turner038ace22007-01-11 15:00:59 +00008822007-01-11 David Turner <david@freetype.org>
883
Werner Lemberg17432b52007-01-12 09:28:44 +0000884 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000885
Werner Lemberg17432b52007-01-12 09:28:44 +0000886 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000887
Werner Lemberg17432b52007-01-12 09:28:44 +0000888 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
889 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000890 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000891
Werner Lemberg17432b52007-01-12 09:28:44 +0000892 * autogen.sh: Small fix to get it working on Mac OS X properly:
893 The issue is that GNU libtool is called `glibtool' on this platform,
894 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000895
David Turner2628ea92007-01-10 13:15:56 +00008962007-01-10 David Turner <david@freetype.org>
897
Werner Lemberg17432b52007-01-12 09:28:44 +0000898 * all-sources: Tag all sources with VER-2-3-0-RC1 and
899 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000900
Werner Lemberg17432b52007-01-12 09:28:44 +0000901 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
902 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
903 version number to 2.3.0.
904
905 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
906 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000907
908 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000909 include/freetype/ftlcdfil.h: Update reference documentation with
910 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000911
Werner Lemberg17432b52007-01-12 09:28:44 +0000912 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
913 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000914
Werner Lembergbf02d392007-01-10 07:07:37 +00009152007-01-10 Derek Clegg <dclegg@apple.com>
916
917 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
918 values.
919
David Turnerf48b60e2007-01-08 15:15:32 +00009202007-01-08 David Turner <david@freetype.org>
921
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000922 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000923
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000924 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
925 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000926 corresponding to a given character pixel size.
927
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000928 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
929 `gasp' table, in order to avoid potential problems with later
930 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000931
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000932 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
933 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000934
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000935 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
936 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
937 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
938 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000939
Werner Lemberge6b6f372007-01-07 00:06:47 +00009402007-01-07 Werner Lemberg <wl@gnu.org>
941
Werner Lembergb8004d22007-01-07 09:13:38 +0000942 * src/cid/cidparse.c (cid_parser_new): Improve error message for
943 Type 11 fonts.
944 Scan for `/sfnts' token.
945
9462007-01-07 Werner Lemberg <wl@gnu.org>
947
948 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000949
Werner Lembergbe5f7972007-01-06 07:51:48 +00009502007-01-06 Werner Lemberg <wl@gnu.org>
951
952 * src/cff/cffload.c (cff_index_init): Remove unused variable.
953 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
954
David Turnera8cf42b2007-01-04 16:46:46 +00009552007-01-04 David Turner <david@freetype.org>
956
Werner Lembergf6294392007-01-06 07:47:45 +0000957 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
958 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000959
Werner Lembergf6294392007-01-06 07:47:45 +0000960
961 Do not allocate interpreter-specific tables in memory if we are not
962 going to load glyphs with the bytecode interpreter anyway.
963
964 * src/truetype/ttgload.c (tt_loader_init): Load execution context
965 only if glyph is hinted.
966 Updated.
967 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
968 and `cvs_ready'.
969 Add `tt_size_ready_bytecode' declaration.
970 * src/truetype/ttobjs.c (tt_size_done_bytecode,
971 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
972 (tt_size_init): Move most code into `tt_size_init_bytecode'.
973 (tt_size_done): Move most code into `tt_size_done_bytecode'.
974 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000975
David Turner91a34022007-01-05 14:47:08 +0000976
Werner Lembergf6294392007-01-06 07:47:45 +0000977 Don't extract the metrics table from the SFNT font file. Instead,
978 reparse it on each glyph load. The runtime difference is not
979 noticeable, and it can save a lot of heap memory when memory-mapped
980 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000981
Werner Lembergf6294392007-01-06 07:47:45 +0000982 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
983 `horz_metrics_offset' and `vert_metrics_ofset'.
984 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
985 Updated.
986
987
988 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
989
990
991 Do not load the CFF index offsets into memory, since this wastes a
992 *lot* of heap memory with large Asian CFF fonts. There is no
993 significant performance loss.
994
995 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
996 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
997 `data_size'.
998 (CFF_CharsetRec): Add field `num_glyphs'.
999
1000 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1001 cff_charset_cid_to_gindex): New functions.
1002 (cff_new_index): Renamed to...
1003 (cff_index_init): This. Update all callers.
1004 Updated -- some code has been moved to `cff_index_load_offsets'.
1005 (cff_done_index): Renamed to...
1006 (cff_index_done): This. Update all callers.
1007 (cff_index_get_pointers, cff_index_access_element): Updated to use
1008 stream offsets.
1009 (cff_charset_compute_cids): Set `num_glyphs' field.
1010 (cff_encoding_load): Updated.
1011
1012 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001013
10142007-01-04 David Turner <david@freetype.org>
1015
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001016 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1017 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001018
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001019 * README.CVS: Add common problem description and solution
1020 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001021
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001022 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001023
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001024 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001025
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001026 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001027
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001028 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1029 (TWorker): This.
1030 Remove `count_table' and `memory'.
1031 Make `grays' a pointer.
1032 (TRaster): New structure.
1033 (count_table): New static array.
1034 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1035 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1036 ft_black_set_mode, ft_black_render): Updated.
1037 (ft_black_init): Don't initialize `count_table'.
1038 (ft_black_reset): Use the render pool. This saves about 6KB of
1039 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001040
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001041 * src/smooth/ftgrays.c (TRaster): Replaced with...
1042 (TWorker): This.
1043 Remove `memory'.
1044 (TRaster): New structure.
1045
1046 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1047 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1048 gray_render_span, gray_raster_render): Updated.
1049 (gray_raster_reset): Use the render pool. This saves about 6KB of
1050 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001051
David Turner8a6c44e2007-01-04 17:03:11 +00001052 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1053 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001054 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1055 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1056 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001057
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001058 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1059 Remove a typo that results in no hinting and a memory leak with some
1060 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001061
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001062 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001063 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001064 CFF_Faces in it. We need to close all faces before destroying the
1065 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001066
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010672007-01-02 Werner Lemberg <wl@gnu.org>
1068
1069 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1070 Remove compiler warning.
1071
David Turner9207e002007-01-02 16:58:13 +000010722007-01-02 David Turner <david@freetype.org>
1073
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001074 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001075
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000010762006-12-31 Masatake YAMATO <jet@gyve.org>
1077
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001078 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1079 function.
1080 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001081 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001082 `gxv_kern_subtable_fmt0_pairs_validate'.
1083
David Turner115b4422006-12-22 11:37:05 +000010842006-12-22 David Turner <david@freetype.org>
1085
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001086 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1087 warnings.
David Turner115b4422006-12-22 11:37:05 +00001088
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001089 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1090 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001091
Werner Lemberg4755bf72006-12-16 08:58:44 +000010922006-12-16 Anders Kaseorg <anders@kaseorg.com>
1093
1094 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1095 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1096
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010972006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1098
Werner Lemberg9b774e22007-01-16 06:11:27 +00001099 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001100 sync with the modification by Jens Claudius on 2006-08-22; cf.
1101 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 +00001102
11032006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1104
1105 * src/base/ftmac.c: Specialized for Mac OS X only.
1106 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1107 * builds/unix/configure.raw: Ditto. When explicit switches for
1108 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1109 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1110
11112006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1112
1113 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1114 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1115 instead of src/base/ftmac.c
1116 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1117 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1118 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1119 that cannot be built at present.
1120
11212006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1122
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001123 * src/base/ftobjs.c: Improvement of resource fork handler for
1124 POSIX, cf.
1125 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001126 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1127 format or .dfont, to simulate the face index number counted by ftmac.c.
1128 (IsMacResource): Return the number of scalable faces correctly.
1129
Werner Lembergec5b4502006-12-10 07:51:38 +000011302006-12-10 Werner Lemberg <wl@gnu.org>
1131
1132 * builds/toplevel.mk (version): Protect against `distclean' target.
1133
Werner Lembergb26b3142006-12-09 20:01:43 +000011342006-12-09 Werner Lemberg <wl@gnu.org>
1135
1136 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1137 or `type'.
1138
1139 * builds/freetype.mk (version): Extracted from freetype.h, using
1140 GNU make's built-in string functions.
1141 (refdoc): Use $(version) instead of static version number.
1142
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000011432006-12-08 Werner Lemberg <wl@gnu.org>
1144
1145 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1146
Werner Lemberg15c29502006-12-09 07:29:54 +000011472006-12-08 Vladimir Volovich <vvv@vsu.ru>
1148
1149 * src/tools/apinames (State): Remove final comma in structure -- xlc
1150 v5 under AIX 4.3 doesn't like this.
1151
David Turnerdbf3b432006-12-07 21:18:09 +000011522006-12-07 David Turner <david@freetype.org>
1153
Werner Lemberg256a3512006-12-08 06:49:33 +00001154 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1155 to the spacing of auto-fitted glyphs. This only impacts rare
1156 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001157
Werner Lemberg11171312006-12-03 09:43:40 +000011582006-12-03 Werner Lemberg <wl@gnu.org>
1159
1160 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1161
Werner Lemberg960ba592006-12-01 08:20:47 +000011622006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001163
Werner Lemberg960ba592006-12-01 08:20:47 +00001164 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1165 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1166 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001167
David Turner80658e52006-11-28 08:09:20 +00001168
Werner Lemberg960ba592006-12-01 08:20:47 +00001169 * include/freetype/ftxf86.h: Fix and extend comment so that it
1170 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001171
Werner Lemberg960ba592006-12-01 08:20:47 +00001172 * include/freetype/ftchapters.h: Add `font_format' section.
1173
1174
1175 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1176 to TOC in index page.
1177
11782006-11-28 David Turner <david@freetype.org>
1179
1180 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1181 trying to render into a zero-width/height bitmap, not an error code.
1182
1183 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1184
1185 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1186 ones instead.
1187
1188 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1189 variable.
David Turner80658e52006-11-28 08:09:20 +00001190
Werner Lemberg8636c292006-11-26 22:28:13 +000011912006-11-26 Pierre Hanser <hanser@club-internet.fr>
1192
1193 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1194
Werner Lemberg960ba592006-12-01 08:20:47 +000011952006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001196
Werner Lemberg960ba592006-12-01 08:20:47 +00001197 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1198 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1199 Add stubs to link the `ftgrid' test program when debugging is
1200 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001201
Werner Lemberg960ba592006-12-01 08:20:47 +000012022006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001203
1204 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001205 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1206
1207 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1208 Emit more sensible information.
1209
1210 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1211
1212 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1213 rounding of blue values.
1214 (af_latin_hints_compute_segments): Hint segment heights.
1215 (af_latin_hints_link_segments): Reduce `len_score' value.
1216 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1217 value and use `height' member for comparisons.
1218 (af_latin_hint_edges): Extend logging message.
1219 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001220
Werner Lemberg91959bf2006-11-22 10:36:55 +000012212006-11-22 Werner Lemberg <wl@gnu.org>
1222
1223 Fix Savannah bug #15553.
1224
1225 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1226 program after a change from mono to grayscaling (and vice versa).
1227 Use correct constant for comparison to get `exec->grayscale'.
1228
Werner Lemberg913a3652006-11-19 09:19:17 +000012292006-11-18 Werner Lemberg <wl@gnu.org>
1230
1231 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001232 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001233 This patch fixes Savannah bug #18301.
1234
1235 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1236 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1237 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1238 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1239 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1240 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1241 (FNT_Load_Glyph): Check validity of `glyph_index'.
1242
David Turner7bab6ae2006-11-13 11:25:06 +000012432006-11-13 David Turner <david@freetype.org>
1244
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001245 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1246 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001247
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001248 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1249 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1250 when building the library to change the default LCD filter to be
1251 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001252
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001253 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001254
David Turner8765c712006-11-10 16:49:42 +000012552006-11-10 David Turner <david@freetype.org>
1256
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001257 * src/smooth/ftsmooth.c: API change for the LCD
1258 filter. The FT_LcdFilter value is an enumeration describing which
1259 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1260 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1261 algorithm which produces strong color fringes for everything
1262 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001263
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001264 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1265 second parameter to an enum type.
1266
1267 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1268 (_ft_lcd_filter): Rename to...
1269 (_ft_lcd_filter_fir): This.
1270 Update parameters.
1271 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1272 (FT_Library_Set_LcdFilter): Update parameters.
1273 Handle new filter modes.
1274
1275 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1276 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1277 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1278 callback and update other fields.
1279
1280 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1281 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1282 Other minor improvements.
1283
1284 * src/autofit/aflatin.c: Various tiny improvements that drastically
1285 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1286 (af_latin_hints_compute_edges): Fix typo.
1287 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001288
David Turner4e9cc3c2006-11-09 16:31:52 +000012892006-11-09 David Turner <david@freetype.org>
1290
Werner Lemberg49c77a82006-11-09 21:51:57 +00001291 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1292 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001293
Werner Lemberg5e430892006-11-07 09:35:03 +000012942006-11-07 Zhe Su <james.su@gmail.com>
1295
1296 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1297 also.
1298
Werner Lemberg111b5ae2006-11-03 09:40:12 +000012992006-11-03 Werner Lemberg <wl@gnu.org>
1300
1301 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1302
David Turner40604742006-11-02 16:37:35 +000013032006-11-02 David Turner <david@freetype.org>
1304
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001305 Add a few tweaks to better handle serif fonts.
1306 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001307
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001308 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1309 segments that are less than 1.5 pixels high. This gets rid of
1310 *many* corner cases with serifs.
1311 (af_latin_align_linked_edge): Add logging message.
1312 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1313 Add logging messages.
1314 Handle AF_EDGE_FLAG flag specially.
1315
1316 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1317 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1318
1319 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1320 Update external declarations.
1321 (af_corner_orientation, af_corner_is_flat): Replaced by...
1322
1323 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1324 ft_corner_is_flat): These declarations.
1325
1326 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1327 Comment out. Replaced by...
1328
1329 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1330 These functions. Update all callers.
1331 (FT_Add64) [!FT_LONG64]: Simplify.
1332
1333 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1334 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1335 production of garbage by missing lots of segments.
1336
1337 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1338
1339 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1340 [AF_DEBUG]: Set _af_debug_hints.
1341
1342
1343 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1344 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1345 and ft_corner_orientation.
1346
1347
1348 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001349
Werner Lemberge88c5262006-10-24 05:46:26 +000013502006-10-24 Werner Lemberg <wl@gnu.org>
1351
1352 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1353
1354 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1355 as argument.
1356
David Turnera1861392006-10-23 16:00:59 +000013572006-10-23 Zhe Su <zsu@novell.com>
1358
Werner Lemberg715e96e2006-10-24 05:28:45 +00001359 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1360 better deal with broken Asian fonts with strange glyphs, having
1361 self-intersections and other peculiarities. The used algorithm is
1362 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001363
David Turnere140f142006-10-23 08:56:57 +000013642006-10-23 David Turner <david@freetype.org>
1365
Werner Lemberg715e96e2006-10-24 05:28:45 +00001366 Speed up the CFF font loader. With some large CFF fonts,
1367 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001368
Werner Lemberg715e96e2006-10-24 05:28:45 +00001369 * src/cff/cffload.c (cff_get_offset): Removed.
1370 (cff_new_index): Inline functionality of `cff_get_offset'.
1371 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1372 (cff_charset_done): Call `cff_charset_free_cids'.
1373 (cff_charset_load): Call `cff_charset_compute_cids'.
1374 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1375
1376 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1377 with FT_NEXT_XXX.
1378
1379
1380 Speed up the Postscript hinter, with more than 100% speed increase
1381 on my machine.
1382
1383 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1384 psh_corner_orientation): New functions.
1385 (psh_glyph_compute_inflections): Merge loops for efficiency.
1386 Use `psh_corner_orientation'.
1387 (psh_glyph_init): Use `psh_corner_is_flat'.
1388 (psh_hint_table_find_strong_point): Renamed to...
1389 (psh_hint_table_find_strong_points): This.
1390 Rewrite, adding argument to handle all points at once.
1391 Update all callers.
1392 (PSH_MAX_STRONG_INTERNAL): New macro.
1393 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001394
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013952006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1396
1397 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001398 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001399
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014002006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1401
1402 * docs/INSTALL.CROSS: New document file for cross-building.
1403
1404 * builds/unix/configure.raw: Preliminary cross-building support.
1405 Find native C compiler and pass it by CC_BUILD, and
1406 find suffix for native executable and pass it by EXEEXT_BUILD.
1407 Also suffix for target executable is passed by EXEEXT.
1408
Werner Lembergb9e6d692006-10-15 08:58:40 +00001409 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1410 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001411 CC_BUILD and EXEEXT_BUILD.
1412
Werner Lembergb9e6d692006-10-15 08:58:40 +00001413 * builds/exports.mk (APINAMES_EXE): Change the extension for
1414 apinames from the suffix for target (E) to that for building host
1415 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001416
Werner Lemberg82a07e92006-10-12 06:20:44 +000014172006-10-12 Werner Lemberg <wl@gnu.org>
1418
1419 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1420 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1421 which reference those files.
1422
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000014232006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1424
Werner Lembergb9e6d692006-10-15 08:58:40 +00001425 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1426 embedded in freetype2.pc and freetype-config. Use it to record
1427 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001428
1429 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1430
1431 * builds/unix/freetype-config.in: Ditto.
1432
Werner Lemberg28e17d92006-10-11 17:27:47 +000014332006-10-11 Werner Lemberg <wl@gnu.org>
1434
1435 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1436 development.
1437
Jens Claudius336d2292006-10-03 08:53:37 +000014382006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1439
1440 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1441 argument to ft_setjmp.
1442
1443 * include/freetype/internal/ftvalid.h: Add comment that
1444 ft_validator_run must not be used.
1445
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014462006-10-01 Werner Lemberg <wl@gnu.org>
1447
1448 * src/base/ftbase.c: Undo change from 2006-09-30.
1449
1450 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1451
14522006-09-30 David Turner <david@freetype.org>
1453
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001454 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1455 s/unpatented_hinting/ignore_unpatented_hinter/.
1456 Update all callers.
1457
1458 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1459 auto-hinting shall be used or not.
1460
1461 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001462
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014632006-09-30 Werner Lemberg <wl@gnu.org>
1464
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001465 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1466 in use).
1467
1468 * src/base/ftbase.c: Include `ftlcdfil.c'.
1469
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014702006-09-29 Werner Lemberg <wl@gnu.org>
1471
1472 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1473 overlapping segments. Bug reported by Stefan Koch.
1474
David Turnerad830712006-09-27 16:20:59 +000014752006-09-28 David Turner <david@freetype.org>
1476
Werner Lemberg2c002e12006-09-29 21:31:53 +00001477 Fix a bug in the automatic unpatented hinting support which prevents
1478 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001479
Werner Lemberg2c002e12006-09-29 21:31:53 +00001480 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1481 s/force_autohint/unpatented_hinting/. Update all callers.
1482
1483 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1484
1485 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001486
David Turner8a317cf2006-09-27 07:52:48 +000014872006-09-27 David Turner <david@freetype.org>
1488
Werner Lemberg2c002e12006-09-29 21:31:53 +00001489 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001490
David Turner8a317cf2006-09-27 07:52:48 +00001491
David Turnere140f142006-10-23 08:56:57 +00001492 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001493 In a default build, the function `FT_Library_SetLcdFilter' returns
1494 `FT_Err_Unimplemented_Feature'; you need to #define
1495 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1496 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001497
Werner Lemberg2c002e12006-09-29 21:31:53 +00001498 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001499
Werner Lemberg2c002e12006-09-29 21:31:53 +00001500 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1501 typedef.
1502 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1503 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001504
Werner Lemberg2c002e12006-09-29 21:31:53 +00001505 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1506 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001507
Werner Lemberg2c002e12006-09-29 21:31:53 +00001508 Handle subpixel rendering.
1509 Simplify function.
1510 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1511 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1512
1513 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1514 pointing to <freetype/ftlcdfil.h>.
1515
1516 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1517 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1518
1519 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001520
Werner Lemberge20df4a2006-09-27 06:29:21 +000015212006-09-26 David Bustin
1522
1523 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1524 correctly. Reported as Savannah bug #17843.
1525
David Turner6f8c6222006-09-26 15:42:44 +000015262006-09-26 David Turner <david@freetype.org>
1527
Werner Lemberg110246c2006-09-26 21:55:44 +00001528 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1529 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1530 horizontal and vertical hinting for the purpose of debugging the
1531 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001532
Werner Lemberg110246c2006-09-26 21:55:44 +00001533 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1534 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001535
Werner Lemberg110246c2006-09-26 21:55:44 +00001536 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1537
1538 * include/freetype/config/ftoption.h, devel/ftoption.h
1539 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1540 we want to compile LCD-optimized rendering code (à la ClearType) or
1541 not. The macro *must* be disabled in default builds of the library
1542 for patent reasons.
1543
1544 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1545 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1546 isn't defined at compile time. This only changes the content of the
1547 rendered glyph to match the one of normal gray-level rendering,
1548 hence clients should not need to be modified.
1549
1550 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001551
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015522006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1553
1554 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1555 LWFN fails and both are available.
1556
David Turnerf3050052006-09-11 12:00:32 +000015572006-09-11 David Turner <david@freetype.org>
1558
Werner Lembergf9644552006-09-12 13:48:10 +00001559 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1560 report their English names through an Apple Roman
1561 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001562
Werner Lembergf9644552006-09-12 13:48:10 +00001563 If the font uses another name entry with language_id == English, it
1564 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001565
Werner Lembergf9644552006-09-12 13:48:10 +00001566 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1567 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001568
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015692006-09-05 Werner Lemberg <wl@gnu.org>
1570
1571 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001572 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001573 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1574 `HAN NOM B.ttf').
1575
1576 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1577
David Turner772e55d2006-09-05 09:45:15 +000015782006-09-05 David Turner <david@freetype.org>
1579
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001580 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001581
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001582 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1583 (TRaster): Remove `count_ex' and `count_ey'.
1584 (gray_find_cell): Remove 2nd and 3rd argument.
1585 (gray_alloc_cell): Merged with `gray_find_cell'.
1586 (gray_record_cell): Simplify.
1587 (gray_set_cell): Rewrite.
1588 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1589 (gray_render_span): Don't use FT_MEM_SET for small values.
1590 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1591 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1592 bitmap scanline.
1593 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001594
David Turneraa557a92006-09-04 16:42:44 +000015952006-09-04 David Turner <david@freetype.org>
1596
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001597 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1598 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001599
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016002006-09-03 Werner Lemberg <wl@gnu.org>
1601
1602 * devel/ftoption.h: Synchronize with
1603 include/freetype/config/ftoption.h.
1604
1605 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1606 variable declaration.
1607 (gray_convert_glyph): Fix compiler warnings.
1608
David Turner6d79f212006-09-01 14:09:35 +000016092006-09-01 David Turner <david@freetype.org>
1610
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001611 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1612 to recognize a few fonts that require the automatic unpatented
1613 loader.
David Turnerbd502952006-09-01 19:05:24 +00001614
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001615 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1616 rasterizer. The speed improvement is between 15% and 25%, depending
1617 on the font data.
1618
1619 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1620 (TCell): Redefine.
1621 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1622 (gray_init_cells): Updated.
1623 (gray_find_cell, gray_alloc_cell): New functions.
1624 (gray_record_cell): Rewritten to use `gray_find_cell' and
1625 `gray_alloc_cell'.
1626 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1627 QSORT_THRESHOLD):
1628 Removed.
1629 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1630 gray_dump_cells): Removed.
1631 (gray_sweep): Rewritten.
1632 (gray_convert_glyph): Rewrite code which used one of the sorting
1633 functions.
1634 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001635
Werner Lembergd898aed2006-08-29 09:50:34 +000016362006-08-29 Dr. Werner Fink <werner@suse.de>
1637
1638 * configure: Make it possible to handle configure options which
1639 have strings containing spaces.
1640
16412006-08-27 David Turner <david@freetype.org>
1642
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001643 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1644 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1645 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1646
1647 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1648 src/truetype/truetype.c, src/truetype/ttdriver.c,
1649 src/truetype/ttgload.c, src/truetype/ttgload.h,
1650 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1651 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1652 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1653
1654 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1655 member `force_autohint'.
1656
1657 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1658
1659 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1660 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001661
Jens Claudiusa787f452006-08-27 11:26:18 +000016622006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1663
1664 Fix miscellaneous compiler warnings.
1665
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001666 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1667 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001668
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001669 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1670 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1671 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001672
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001673 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1674 volatileness of argument to ft_longjmp. Spotted by Werner
1675 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001676
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001677 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1678 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001679
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001680 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1681 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001682
Werner Lembergc4c35b72006-08-27 08:03:46 +000016832006-08-27 Werner Lemberg <wl@gnu.org>
1684
1685 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1686 Reported by Jens.
1687
Jens Claudius088e44e2006-08-22 14:24:30 +000016882006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001689
Jens Claudius088e44e2006-08-22 14:24:30 +00001690 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001691 about addresses of volatile objects passed as function arguments as
1692 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001693
Werner Lembergc4c35b72006-08-27 08:03:46 +00001694 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1695 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001696
1697 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1698 argument `table' a pointer to a volatile object.
1699
1700 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1701 argument `table' a pointer to a volatile object.
1702
Jens Claudius2652bd52006-08-18 17:20:37 +000017032006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1704
1705 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1706 variable `_sfnt' as volatile since it must keep its value across
1707 a call to ft_setjmp.
1708 (gxv_validate): Same for local variables `memory' and `valid'.
1709 (classic_kern_validate): Same for local variables `memory',
1710 `ckern', and `valid'.
1711
1712 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1713 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1714 `jstf', and 'valid'.
1715
1716 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1717 local variable `cmap'.
1718
David Turner9fbfc6a2006-08-16 09:11:31 +000017192006-08-16 David Turner <david@freetype.org>
1720
Werner Lemberg12342992006-08-19 11:18:09 +00001721 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1722 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001723
Werner Lemberg12342992006-08-19 11:18:09 +00001724 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1725 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001726
David Turner33f5f242006-08-16 16:50:55 +00001727
Werner Lemberg12342992006-08-19 11:18:09 +00001728 Improvements to native TrueType hinting. This is a first try,
1729 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1730
1731 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1732 `extra_points2'.
1733
1734 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1735 `orus'.
1736
1737 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1738 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1739 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1740 handle `extra_points2'.
1741
1742 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1743 Remove compiler warning.
1744 (cur_to_arg): Remove macro.
1745 (TT_Hint_Glyph): Updated.
1746 (TT_Process_Simple_Glyph): Handle `orus'.
1747
1748 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1749 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1750 (LOC_Ins_IUP): Renamed to...
1751 (IUP_WorkerRec): This.
1752 Add `orus' member.
1753 (Shift): Renamed to...
1754 (_iup_worker_shift): This.
1755 Updated.
1756 (Interp): Renamed to...
1757 (_iup_worker_interpolate): This.
1758 Updated to handle `orus'.
1759 (Ins_IUP): Updated.
1760
1761 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1762 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001763
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017642006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1765
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001766 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001767 build ftvalid in ft2demos. This has been inadvertedly changed
1768 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001769
17702006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1771
Werner Lemberg12342992006-08-19 11:18:09 +00001772 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1773 Jens:
1774 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001775
Werner Lemberg12342992006-08-19 11:18:09 +00001776 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1777 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001778
1779 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1780
Jens Claudius9950adc2006-08-13 12:14:36 +000017812006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1782
Werner Lemberg12342992006-08-19 11:18:09 +00001783 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1784 T1_TOKEN_TYPE_KEY.
1785 (T1_FieldRec): Add `dict'.
1786 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1787 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1788 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001789
Werner Lemberg12342992006-08-19 11:18:09 +00001790 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1791 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001792
1793 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1794
1795 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001796 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1797 not T1_TOKEN_TYPE_ANY.
1798 (ps_parser_load_field): Make sure a token that should be a string or
1799 name is really a string or name.
1800 Avoid memory leak if a keyword has been already encountered and its
1801 value is overwritten.
1802 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1803 T1_FIELD_XXX.
1804 (parse_dict): Ignore keywords that occur in the wrong dictionary
1805 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001806
Werner Lemberg12342992006-08-19 11:18:09 +00001807 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1808 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001809
Werner Lemberg12342992006-08-19 11:18:09 +00001810 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1811 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001812
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000018132006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1814
1815 Move creation of field `buildchar' of T1_DecoderRec out of
1816 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1817 of it.
1818
1819 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1820 and `T1_Compute_Max_Advance'.
1821
1822 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1823 Remove field `face', add `len_buildchar'.
1824
1825 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1826 field `buildchar'.
1827
1828 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1829 finisher for T1_Decoder.
1830 (cid_slot_load_glyph): Do not ignore failure when initializing the
1831 T1_Decoder.
1832
1833 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1834 Updated.
1835 (t1_decoder_init): Remove initialization of fields `buildchar' and
1836 `len_buildchar'.
1837 (t1_decoder_done): Remove deallocation of field `buildchar'.
1838
1839 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1840 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1841 T1_Decoder.
1842 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1843 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1844 case of error.
1845
1846 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1847 `buildchar' of T1_FaceRec.
1848
1849 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1850 `buildchar' of T1_FaceRec.
1851
Werner Lemberg1a380e02006-07-14 18:28:08 +000018522006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1853
1854 * freetype2/include/freetype/internal/psaux.h: New macros
1855 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1856 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1857 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1858 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1859 (T1_DecoderRec): New fields `buildchar' and `face'.
1860 (IS_PS_TOKEN): New macro.
1861
1862 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1863 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1864
1865 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1866 `default_design_vector' and `num_default_design_vector'.
1867
1868 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1869 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1870 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1871
1872 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1873 `token' argument to be NULL if we want only to count the number of
1874 tokens.
1875 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1876 want to skip the array.
1877 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1878 want to skip the array.
1879
1880 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1881 support for (partially commented out) othersubrs 19-25, 27, and 28.
1882 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1883 (t1_decoder_done): Release new field `buildchar'.
1884
1885 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1886 functions.
1887 (t1_keywords): Register them.
1888 (t1_allocate_blend): Updated.
1889 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1890 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1891 (parse_dict): Remove `keyword_flags' argument.
1892 Use new macro IS_PS_TOKEN.
1893 Changed function so that later PostScript definitions override
1894 earlier ones.
1895 (t1_init_loader): Initialize new field `keywords_encountered'.
1896 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1897 `len_buildchar'.
1898 Remove `keywords_flags'.
1899
1900 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1901 `keywords_encountered'.
1902 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1903
1904 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1905 New entries for parsing /NDV, /CDV, and /DesignVector.
1906
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000019072006-07-07 Werner Lemberg <wl@gnu.org>
1908
1909 Add many checks to protect against malformed PCF files.
1910
1911 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1912 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1913
1914 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1915 data and check that tables don't overlap (using a simple
1916 bubblesort).
1917 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1918 New macros which give the size of data structures in the data
1919 stream.
1920 (pcf_get_properties): Use rough estimates to get array size limits.
1921 Assign `face->nprops' and `face->properties' earlier so that a call
1922 to PCF_Face_Done can do the clean-up in case of error.
1923 Protect against invalid string offsets.
1924 (pcf_get_metrics): Clean up code.
1925 Adjust tracing message levels.
1926 Use rough estimate to get array size limit.
1927 (pcf_get_bitmaps): Clean up code.
1928 Adjust tracing message levels.
1929 Use rough estimates to get offset limits.
1930 (pcf_get_encodings): Adjust tracing message level.
1931 (pcf_get_accel): Clean up code.
1932
Werner Lemberg8eb05252006-06-27 06:20:01 +000019332006-06-26 Werner Lemberg <wl@gnu.org>
1934
1935 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1936 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1937
Werner Lemberg24703f82006-06-26 19:12:51 +000019382006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1939
1940 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1941 (t1_decoder_parse_charstrings): Operator with
1942 opcode 15 pops its two arguments.
1943 Handle the case where the pops of an othersubr may be part of a
1944 subroutine.
1945 Handle unknown othersubrs gracefully: count their operands and let
1946 the following pop operators push the operands as the results onto
1947 the Type1 stack.
1948 Improve handling of setcurrentpoint opcode.
1949
Werner Lembergc011f4c2006-06-26 09:40:00 +000019502006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1951
1952 The Type 1 parser now skips over top-level procedures as required
1953 for a `Simplified Parser'. This makes the parser more robust as it
1954 doesn't poke around in PostScript code. Additionally, it makes the
1955 FontDirectory hackery in src/type1/t1load.c unnecessary.
1956
1957 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1958 (skip_literal_string): Add FT_Error as return value.
1959 Handle escapes better.
1960 (skip_string): Add FT_Error as return value.
1961 Don't set `parser->error' but return error code directly.
1962 (skip_procedure): New function.
1963 (ps_parser_skip_PS_token): Handle procedures.
1964 Update code.
1965 (ps_parser_to_token): Update code.
1966 (ps_parser_load_field_table): Handle bbox entries also.
1967
1968 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1969 Add commented-out code for synthetic fonts.
1970
Werner Lemberga2da05c2006-06-25 06:27:27 +000019712006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1972
1973 Fix two hinting bugs as reported in
1974 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1975
1976 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1977 `first_point' member.
1978
1979 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1980 `first_point'.
1981 (TT_Process_Composite_Glyph): Always untouch points.
1982
1983 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1984 `first_point' and `last_point' in case of composite glyphs.
1985 (Ins_IUP): Fix computation of `end_point'.
1986
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000019872006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1988
Werner Lembergef3d2c22006-06-25 06:07:14 +00001989 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1990 Mac. The original patch was written by David Sachitano and Lawrence
1991 Coopet, and modified by Sean McBride for MPW compatibility. Only
1992 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001993
Werner Lembergef3d2c22006-06-25 06:07:14 +00001994 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1995 Mac OS X platforms.
1996 (OS_INLINE): Undefine before definition.
1997 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1998 FontAssociation table in FOND resource.
1999 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2000 and fontSize at each entry of FontAssociation table in FOND
2001 resource.
2002 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2003 ffStylOff of FamilyRecord header of FOND resource, the header,
2004 fontSize, fontID at each entry of FontAssociation table, and
2005 StyleMapping table.
2006 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002007
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000020082006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2009
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002010 Public API of TrueTypeGX, OpenType, and classic kern table validator
2011 should return `FT_Err_Unimplemented_Feature' if validation service
2012 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002013 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002014 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2015
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002016 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2017 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2018 unavailable.
2019 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2020 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002021
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002022 * src/base/ftotval.c (FT_OpenType_Validate): Return
2023 FT_Err_Unimplemented_Feature if OpenType validation service is
2024 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002025
Werner Lembergb10e45a2006-06-08 07:32:56 +000020262006-06-08 Werner Lemberg <wl@gnu.org>
2027
2028 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2029 errors.
2030
David Turner5f1f7502006-06-07 05:11:50 +000020312006-06-07 David Turner <david@freetype.org>
2032
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002033 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2034 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2035 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002036
David Turner457b4a82006-06-06 08:14:14 +000020372006-06-06 David Turner <david@freetype.org>
2038
Werner Lemberg4836f952006-06-06 12:54:08 +00002039 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002040
Werner Lemberg4836f952006-06-06 12:54:08 +00002041 We change `ps_unicodes_init' so that it also takes a
2042 `free_glyph_name' callback to release the glyph names returned by
2043 `get_glyph_name'
2044
2045 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2046 Renamed to ...
2047 (PS_GetGlyphNameFunc): This.
2048 (PS_FreeGlyphNameFunc): New typedef.
2049 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2050
2051 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2052 argument.
2053 (cff_sid_free_glyph_name): New function.
2054 (cff_cmap_unicode_init): Updated.
2055
2056 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2057
2058 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2059 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002060
2061
David Turner09717352006-06-04 14:33:08 +000020622006-06-04 David Turner <david@freetype.org>
2063
Werner Lembergd724f202006-06-04 15:17:41 +00002064 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2065 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002066 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002067
Werner Lembergd724f202006-06-04 15:17:41 +00002068 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2069 of `face->num_glyphs' which missed the last glyph, due to
2070 the offset-by-1 computation, since the PFR format doesn't
2071 guarantee that glyph index 0 corresponds to the `missing
2072 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002073
Werner Lemberg33779662006-05-26 06:30:05 +000020742006-05-25 Werner Lemberg <wl@gnu.org>
2075
2076 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2077 `-no-undefined'. Reported by Christian Biesinger.
2078
Werner Lemberg24773d62006-05-20 08:53:13 +000020792006-05-19 Brian Weed <bw@imaginengine.com>
2080
2081 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2082 have debug information, and debug libraries use `C7 compatible'
2083 debug info.
2084
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000020852006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2086
Werner Lemberga6523a62006-05-20 08:47:01 +00002087 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002088 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002089
Werner Lemberga6523a62006-05-20 08:47:01 +00002090 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2091 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002092
2093 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002094 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002095
20962006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2097
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002098 * build/unix/configure.raw: Add a fallback to disable Carbon
2099 dependency, if configured with no options on Mac OS X.
2100
21012006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2102
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002103 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002104 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002105 the second part of Savannah bug #16590.
2106
Werner Lemberg545c4e52006-05-17 22:55:04 +000021072006-05-18 Werner Lemberg <wl@gnu.org>
2108
2109 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2110 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2111
David Turnerdc3ff312006-05-17 12:59:35 +000021122006-05-17 David Turner <david@freetype.org>
2113
Werner Lemberg545c4e52006-05-17 22:55:04 +00002114 This is a major patch used to drastically improve the performance of
2115 loading glyphs. This both speeds up loading the glyph vectors
2116 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002117
Werner Lemberg545c4e52006-05-17 22:55:04 +00002118 We now use inline assembler code with GCC to implement `FT_MulFix',
2119 which is probably the most important function related to the
2120 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002121
Werner Lemberg545c4e52006-05-17 22:55:04 +00002122 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002123
2124
Werner Lemberg545c4e52006-05-17 22:55:04 +00002125 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2126 `cursor' and `limit'.
2127
2128 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2129 New functions.
2130 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2131 [TEST]: Remove.
2132
2133 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2134 code.
2135
2136 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2137 `FT_ZERO'
2138 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2139 (af_glyph_hints_reload: Rewrite recognition of weak points.
2140
2141 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2142 constant values out of the loops.
2143
2144 * src/autofit/aftypes.h: Updated.
2145
2146 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2147
2148 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2149 product to get orientation.
2150
2151 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2152 (FT_Stream_OpenGzip): Use it to handle small files directly in
2153 memory.
2154
2155 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2156 Improve performance.
2157
2158 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2159 `limit'.
2160
2161 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2162 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2163 exceedingly large values of number of contours. Speed up by
2164 reducing the number of loops.
2165
2166 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2167
2168
2169 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2170 used to detect rogue clients from 4 to 16. This is to prevent some
2171 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2172 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002173
Werner Lembergde2d90a2006-05-17 08:54:30 +000021742007-05-17 Werner Lemberg <wl@gnu.org>
2175
2176 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002177 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002178
21792006-05-16 Werner Lemberg <wl@gnu.org>
2180
2181 * docs/PROBLEMS: Updated icl issues.
2182
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002183----------------------------------------------------------------------------
2184
Werner Lemberg42b63b22007-01-21 21:01:33 +00002185Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002186David Turner, Robert Wilhelm, and Werner Lemberg.
2187
2188This file is part of the FreeType project, and may only be used, modified,
2189and distributed under the terms of the FreeType project license,
2190LICENSE.TXT. By continuing to use, modify, or distribute this file you
2191indicate that you have read the license and understand and accept it
2192fully.
2193
2194
2195Local Variables:
2196version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002197coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002198End: