blob: c26bf5e795e2c91270a861b82999170f9f3d7cbc [file] [log] [blame]
Werner Lemberg2a2dca62007-06-06 04:39:37 +000012007-06-06 Werner Lemberg <wl@gnu.org>
2
3 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
4
Werner Lemberga8d65492007-06-06 04:47:49 +00005
6 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
7 FreeType error.
8
Werner Lemberg470210b2007-06-06 10:05:49 +00009
10 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
11 `font_count'.
12
13
14 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
15
16
17 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
18 `FT_Error'.
19 Check `fd_index'.
20 (cff_slot_load): Updated.
21 * src/cff/cffgload.h: Updated.
22
Werner Lemberg6c054752007-06-05 05:27:54 +0000232007-06-05 Werner Lemberg <wl@gnu.org>
24
25 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
26 (pfr_glyph_load_simple): Convert assertion into normal FreeType
27 error.
28 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +000029 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
30 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +000031
32 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
33
Werner Lembergf4bc3f42007-06-05 07:32:15 +000034
Werner Lemberg470210b2007-06-06 10:05:49 +000035 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +000036
Werner Lemberge5c14d92007-06-05 20:50:37 +000037
38 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
39 in case of parsing error.
40 (ps_parser_load_field): Updated.
41
42 * src/type1/t1load.c (parse_font_matrix): Updated.
43
Werner Lembergad18b362007-06-04 07:04:05 +0000442007-06-04 Werner Lemberg <wl@gnu.org>
45
46 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
47
48 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
49
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000502007-06-03 Werner Lemberg <wl@gnu.org>
51
Werner Lemberg99a320b2007-06-03 19:21:26 +000052 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
53 George Williams (with some modifications).
54
552007-06-03 Werner Lemberg <wl@gnu.org>
56
Werner Lemberg3d507fe2007-06-03 16:54:55 +000057 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
58 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
59 face == NULL. Suggested by Graham Asher.
60
Werner Lembergce280a22007-06-03 05:58:30 +0000612007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
62
63 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
64
Werner Lemberg5b591e42007-06-01 22:16:43 +0000652007-06-02 Werner Lemberg <wl@gnu.org>
66
67 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
68 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
69
70 * src/bdf/bdflib.c (bdf_load_font): Use them.
71
72 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
73
Werner Lembergb9933f42007-06-01 21:27:12 +0000742007-06-01 Werner Lemberg <wl@gnu.org>
75
76 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
77 (FTC_CMapCache_Lookup): Remove unused code.
78
Werner Lembergc793d902007-06-01 20:51:11 +0000792007-06-01 Sean McBride <sean@rogue-research.com>
80
81 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
82 unused.
83
Werner Lembergbebc7b12007-06-01 06:32:30 +0000842007-06-01 Werner Lemberg <wl@gnu.org>
85
86 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
87 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +000088 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +000089
Werner Lembergcb37b3b2007-06-01 06:49:03 +000090 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
91 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
92
Werner Lembergba03af62007-05-30 13:57:02 +0000932007-05-30 Werner Lemberg <wl@gnu.org>
94
95 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
96 against too small binary data strings.
97
98 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
99
David Turnerf0cd69c2007-05-28 15:42:09 +00001002007-05-28 David Turner <david@freetype.org>
101
Werner Lemberg99e0c182007-05-29 07:00:23 +0000102 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
103 transformation. This significantly reduces the loading time of CFF
104 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000105
Werner Lemberg99e0c182007-05-29 07:00:23 +0000106 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000107
Werner Lemberg99e0c182007-05-29 07:00:23 +0000108 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
109 hinting script to CJK, since it works well with more scripts than
110 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
111 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000112
Werner Lemberg1c8980e2007-05-25 07:11:12 +00001132007-05-25 Werner Lemberg <wl@gnu.org>
114
115 * docs/CHANGES: Updated.
116
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00001172007-05-24 Werner Lemberg <wl@gnu.org>
118
119 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
120 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
121
1222007-05-24 Graham Asher <graham.asher@btinternet.com>
123
124 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
125 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
126
David Turner0d0365e2007-05-22 09:53:44 +00001272007-05-22 David Turner <david@freetype.org>
128
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000129 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
130 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000131
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000132
133 Avoid heap blowup with very large .Z font files. This fixes
134 Savannah bug #19910.
135
136 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
137 `in_limit', `pad', `pad_bits', and `in_buff' members.
138 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
139 `buf_total' members.
140
141 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
142 only one argument.
143 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000144
1452007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000146
147 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
148 (ps_dimension_set_mask_bits): Remove `const'.
149
David Turner0d0365e2007-05-22 09:53:44 +00001502007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000151
152 * src/sfnt/ttmtx.c (tt_face_get_metrics)
153 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
154
Werner Lembergb826fa72007-05-19 07:18:48 +00001552007-05-19 Derek Clegg <dclegg@apple.com>
156
157 Savannah patch #5929.
158
159 * include/freetype/tttables.h, src/base/ftobjcs.c
160 (FT_Get_CMap_Format): New function.
161
162 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
163 `format' member.
164 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
165 cmap_info->format.
166
Werner Lemberg6f99c882007-05-19 07:01:49 +00001672007-05-19 Werner Lemberg <wl@gnu.org>
168
169 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
170 before handling subglyphs so that it can be reinitialized each time.
171 This fixes Savannah bug #19859.
172
Werner Lemberg95bc9d32007-05-16 15:19:42 +00001732007-05-16 Werner Lemberg <wl@gnu.org>
174
175 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
176 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
177 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
178 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
179 tt_face_get_metrics): Fix type-punning issues.
180
David Turner0a24bd22007-05-15 10:54:10 +00001812007-05-15 David Turner <david@freetype.org>
182
183 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000184 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
185 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000186 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000187 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000188
Werner Lemberg607dec72007-05-15 06:49:37 +00001892007-05-15 Graham Asher <graham.asher@btinternet.com>
190
191 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
192 variable.
193 * src/autofit/afloader.c (af_loader_load_g): Ditto.
194
195 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
196 (open_face_from_buffer): Initialize `stream'.
197 (FT_Request_Metrics): Remove unused variable.
198 Remove redundant `break' statements.
199 (FT_Get_Track_Kerning): Remove unused variable.
200
201 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
202 afm_parse_kern_data): Remove redundant
203 `break' statements.
204 (afm_parser_parse): Ditto.
205 Don't use uninitialized variables.
206
207 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
208 Use `|' operator instead of `^' to set it.
209 Update all users.
210
211 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
212 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
213
214 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
215 comparison.
216 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
217 (TT_Load_Glyph): Remove unused variable.
218
Werner Lemberg8d463a52007-05-13 16:01:55 +00002192007-05-13 Derek Clegg <dclegg@apple.com>
220
221 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
222 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
223
David Turner711cf842007-05-11 14:36:24 +00002242007-05-11 David Turner <david@freetype.org>
225
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000226 * src/cache/ftbasic.c, include/freetype/ftcache.h
227 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
228 functions that allow us to look up glyphs using an FTC_Scaler object
229 to specify the size, making it possible to use fractional pixel
230 sizes.
231
232 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
233 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000234
Werner Lemberg94be20e2007-05-09 20:02:55 +00002352007-05-09 Graham Asher <graham.asher@btinternet.com>
236
237 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
238 (af_latin_metrics_scale_dim): Fix compiler warnings.
239
Werner Lemberg41271032007-05-06 04:51:48 +00002402007-05-06 Werner Lemberg <wl@gnu.org>
241
242 * builds/win32/visualce/freetype.sln: Removed, as requested by
243 Vincent.
244
Werner Lembergdf49e692007-05-04 06:30:05 +00002452007-05-04 Vincent RICHOMME <richom.v@free.fr>
246
247 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
248 PC targets.
249
250 * docs/CHANGES: Document them.
251
2522007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000253
254 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
255 mmap (which might happen on some RTOS). From Savannah patch #5909.
256
Werner Lemberg106eaf12007-05-03 07:07:47 +00002572007-05-03 Werner Lemberg <wl@gnu.org>
258
259 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
260 * include/freetype/freetype.h (FT_Set_Char_Size): Update
261 documentation.
262
Werner Lemberg1b5267d2007-04-28 21:06:15 +00002632007-04-28 Victor Stinner <victor.stinner@inl.fr>
264
265 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
266 `cmap'.
267
Werner Lembergcc712a22007-04-27 17:16:50 +00002682007-04-27 Werner Lemberg <wl@gnu.org>
269
270 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
271 number of points in contours. Problem reported by Victor Stinner
272 <victor.stinner@haypocalc.com>.
273 (TT_Process_Simple_Glyph): Synchronize variable types.
274
Werner Lemberg45bb18f2007-04-26 06:26:35 +00002752007-04-26 Werner Lemberg <wl@gnu.org>
276
277 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
278 zero in case of error. This fixes Savannah bug #19689.
279
David Turnera8b45e62007-05-11 14:10:30 +00002802007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
281
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000282 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
283 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000284
Werner Lembergfcc1f472007-04-10 11:51:50 +00002852007-04-10 Martin Horak <horakm@centrum.cz>
286
287 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
288 Ignore `hhea' table. This fixes Savannah bug #19261.
289
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002902007-04-09 Werner Lemberg <wl@gnu.org>
291
292 * Version 2.3.4 released.
293 =========================
294
295
296 Tag sources with `VER-2-3-4'.
297
298 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
299 version number to 2.3.4.
300
301 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
302 builds/win32/visualc/freetype.dsp,
303 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
304
305 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
306
307 * builds/unix/configure.raw (version_info): Set to 9:15:3.
308
Werner Lembergf4a52a62007-04-09 08:40:11 +00003092007-04-09 Martin Horak <horakm@centrum.cz>
310
311 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
312 memory stream to avoid a crash with the incremental memory
313 interface (Savannah bug #19260).
314
David Turner1dcb4442007-04-06 08:19:04 +00003152007-04-06 David Turner <david@freetype.org>
316
Werner Lembergc81cf612007-04-06 09:28:23 +0000317 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
318 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000319
Werner Lemberg9f83e052007-04-05 02:28:23 +00003202007-04-04 Werner Lemberg <wl@gnu.org>
321
322 * Version 2.3.3 released.
323 =========================
324
325
326 Tag sources with `VER-2-3-3'.
327
328 * docs/CHANGES: Mention CVE-2007-1351.
329
David Turner7338ec22007-04-03 14:30:34 +00003302007-04-03 David Turner <david@freetype.org>
331
332 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000333 if one of the resolution values is 0, treat it as if it were the
334 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000335
David Turnere6472c12007-04-02 13:13:54 +00003362007-04-02 David Turner <david@freetype.org>
337
Werner Lemberg94f12272007-04-03 07:19:53 +0000338 Add special code to detect `extra-light' fonts and do not snap their
339 stem widths too much to avoid bizarre hinting effects.
340
341 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
342 `extra_light' members.
343
344 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
345 them.
346 (af_latin_metrics_scale_dim): Set `extra_light'.
347 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000348
David Turner3f539692007-03-28 14:53:40 +00003492007-03-28 David Turner <david@freetype.org>
350
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000351 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000352 padding.
353
Werner Lemberga08b2172007-03-28 07:17:17 +00003542007-03-28 Werner Lemberg <wl@gnu.org>
355
356 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
357 gracefully.
358 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000359 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000360 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
361 number of code points in Unicode.
362
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000363 * builds/win32/visualc/index.html,
364 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000365 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000366 s/232/233/.
367
368 * docs/CHANGES: Mention ftdiff.
369
David Turner3b242d32007-03-26 12:03:04 +00003702007-03-26 David Turner <david@freetype.org>
371
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000372 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
373 corresponding code.
374 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000375
Werner Lemberga08b2172007-03-28 07:17:17 +0000376 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000377 computations in order to ignore single-point contours. These are
378 never rasterized and correspond in certain fonts to mark-attach
379 points that are very far from the glyph's real outline, ruining the
380 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000381
Werner Lemberga08b2172007-03-28 07:17:17 +0000382 * src/autofit/afloader.c (af_loader_load_g): In the case of
383 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
384 Otherwise code that uses them will most certainly ruin the fixed
385 advance property.
David Turner23553d62007-03-26 13:37:17 +0000386
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000387 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
388 documentation and bump version number to 2.3.3.
389
390 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
391
392 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000393
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003942007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
395
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000396 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
397 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000398 * builds/vms/ftconfig.h: Ditto.
399 * include/freetype/config/ftconfig.h: Ditto.
400
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00004012007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
402
Werner Lemberg14ffe092007-03-22 06:12:43 +0000403 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
404 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000405 proposed by Sean McBride:
406 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
407
4082007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
409
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000410 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
411 setjmp, proposed by Sean McBride:
412 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
413
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00004142007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
415
Werner Lembergc9f6c662007-03-21 13:30:14 +0000416 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
417 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
418 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000419
David Turner74c34eb2007-03-18 07:19:31 +00004202007-03-18 David Turner <david@freetype.org>
421
Werner Lembergc9f6c662007-03-21 13:30:14 +0000422 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
423 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000424
Werner Lembergc9f6c662007-03-21 13:30:14 +0000425 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000426
David Turner89020d92007-03-17 17:48:57 +00004272007-03-17 David Turner <david@freetype.org>
428
Werner Lembergc9f6c662007-03-21 13:30:14 +0000429 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
430 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000431
Werner Lemberg25d592a2007-03-09 07:59:35 +00004322007-03-09 Werner Lemberg <wl@gnu.org>
433
434 * Version 2.3.2 released.
435 =========================
436
437
438 Tag sources with `VER-2-3-2'.
439
440 * builds/win32/visualc/index.html,
441 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000442 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000443 s/231/232/.
444
David Turner3a51afa2007-03-08 10:50:38 +00004452007-03-08 David Turner <david@freetype.org>
446
Werner Lemberg25d592a2007-03-09 07:59:35 +0000447 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000448
Werner Lemberg25d592a2007-03-09 07:59:35 +0000449 * builds/unix/configure.raw (version_info): Set to 9:13:3.
450
451 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
452
453 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000454
Werner Lemberg1e259de2007-03-08 15:39:21 +0000455 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
456 function to work properly, over-writing user-provided buffers in
457 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000458
David Turner121cad52007-03-08 16:43:50 +0000459
Werner Lemberg3d92f082007-03-06 11:59:24 +00004602007-03-05 Werner Lemberg <wl@gnu.org>
461
462 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
463 macro for `strstr'.
464
465 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
466 `trick_names', as suggested by Ivan Nincic.
467
David Turner085bc6e2007-03-05 17:40:03 +00004682007-03-05 David Turner <david@freetype.org>
469
Werner Lembergd112cf02007-03-06 12:06:56 +0000470 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
471 case FT_Init_FreeType fails for some reason. Problem reported by
472 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000473
Werner Lembergd112cf02007-03-06 12:06:56 +0000474 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
475 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
476 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
477 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000478
Werner Lembergd112cf02007-03-06 12:06:56 +0000479 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
480 signed values, not unsigned ones. Problem reported by Johannes
481 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000482
David Turner601aefe2007-02-21 16:47:49 +00004832007-02-21 David Turner <david@freetype.org>
484
Werner Lembergde5e6862007-02-25 21:06:43 +0000485 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
486 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000487
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004882007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
489
490 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
491 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
492 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
493
Werner Lemberga0915172007-02-16 08:12:50 +00004942007-02-16 Werner Lemberg <wl@gnu.org>
495
496 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
497 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
498
David Turner2c4500e2007-02-14 15:08:47 +00004992007-02-14 David Turner <david@freetype.org>
500
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000501 It seems that the following changes fix most of the known
502 interpreter problems with my fonts, but more testing is needed,
503 though.
504
505 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
506 (TT_MulFix14): Rewrite.
507 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
508 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000509
Werner Lembergc6a14082007-02-12 22:08:15 +00005102007-02-12 Werner Lemberg <wl@gnu.org>
511
512 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
513 warnings.
514
515 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
516 (bdf_interpret_style): Ditto.
517
David Turnerc0f9c4a2007-02-12 14:55:03 +00005182007-02-12 David Turner <david@freetype.org>
519
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000520 Simplify projection and dual-projection code interface.
521
Werner Lemberg406d25f2007-02-12 22:01:18 +0000522 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
523 FT_Vector' as argument type.
524 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
525 Updated.
526 (CUR_fast_project, CUR_fast_dualproj): New macros.
527 (Project, Dual_Project, Project_x, Project_y): Updated.
528 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
529 macros.
530
531
532 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
533 adjustments for the non-light auto-hinted modes. Gets rid of
534 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000535
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000536 * src/autofit/aflatin.c (af_latin_hints_link_segments,
537 af_latin_hints_compute_edges): Slight optimization of the segment
538 linker and better handling of serif segments to get rid of broken
539 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000540
David Turnerc0f9c4a2007-02-12 14:55:03 +0000541
Werner Lemberg442bfb82007-02-12 21:44:10 +0000542 Introduce new string functions and the corresponding macros to get
543 rid of various uses of strcpy and other `evil' functions, as well as
544 to simplify a few things.
545
546 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
547 ft_mem_strcpyn): New declarations.
548 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
549 macros.
550 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
551 functions.
552
553 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
554 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
555 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
556 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
557 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
558 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
559 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
560 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000561
Werner Lemberg406d25f2007-02-12 22:01:18 +0000562 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
563
Werner Lemberg582067d2007-02-11 15:03:05 +00005642007-02-11 Werner Lemberg <wl@gnu.org>
565
566 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
567 non-spacing glyphs.
568
Werner Lemberg8f474532007-02-07 08:31:01 +00005692007-02-07 Tom Parker <palfrey@tevp.net>
570
571 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
572 pointer.
573
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005742007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
575
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000576 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
577 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000578 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000579 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
580 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
581 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
582 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000583
584 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
585 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000586 * builds/mac/ftmac.c: Ditto.
587
5882007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
589
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000590 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000591 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000592 #include <ftmac.c>.
593
5942007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
595
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000596 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
597 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
598 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
599 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
600 FT_GetFilePath_From_Mac_ATS_Name.
601 * builds/mac/ftmac.c: Ditto.
602
6032007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
604
Werner Lembergdcbb7082007-02-08 08:54:09 +0000605 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000606 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
607 for passing to FT_New_Face_From_FSSpec.
608
6092007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
610
Werner Lembergdcbb7082007-02-08 08:54:09 +0000611 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000612 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000613
614 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
615 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000616 * builds/mac/ftmac.c (OS_INLINE): Ditto.
617
Werner Lemberg313d7772007-02-01 08:10:45 +00006182007-02-01 Werner Lemberg <wl@gnu.org>
619
620 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
621 Explain why applications shouldn't use it. Found by Alexei.
622
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00006232007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000624
625 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
626 message.
627
628 * src/gxvalid/gxvmort1.c
629 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
630 message.
631
Werner Lemberg53935932007-01-31 08:53:02 +00006322007-01-31 Werner Lemberg <wl@gnu.org>
633
634
635 * Version 2.3.1 released.
636 =========================
637
638
639 Tag sources with `VER-2-3-1-FINAL'.
640
641 * builds/win32/visualc/freetype.dsp,
642 builds/win32/visualc/freetype.vcproj: s/230/231/.
643 * builds/win32/visualc/index.html: s/221/231/.
644
645 * vms_make.com: Add `ftgasp'.
646
David Turnera7ee6082007-01-30 10:33:53 +00006472007-01-30 David Turner <david@freetype.org>
648
Werner Lemberg53935932007-01-31 08:53:02 +0000649 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000650
Werner Lemberg53935932007-01-31 08:53:02 +0000651 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000652
Werner Lemberg25d592a2007-03-09 07:59:35 +0000653 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000654 s/2.3.0/2.3.1/.
655
656 * builds/unix/configure.raw (version_info): Set to 9:12:3.
657
658
659 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
660 (af_loader_load_g): Disable the warper (i.e., the light hinting
661 improvements) to make a 2.3.1 bugfix release before introducing a
662 new feature. This should give us more time to tune and improve the
663 warper for the next release.
664
665 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000666
David Turnerd91eebd2007-01-26 15:05:41 +00006672007-01-25 David Turner <david@freetype.org>
668
Werner Lembergbf241762007-01-26 16:08:49 +0000669 For light auto-hinting, improve glyph advance widths and resurrect
670 normal/full hinting to its normal quality.
671
672 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
673 and `xmax_delta'.
674 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
675 and `xmax_delta'.
676
677 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
678 preprocessor conditional with if-clause, handling both light and
679 normal mode.
680
681 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
682 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000683
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00006842007-01-25 Werner Lemberg <wl@gnu.org>
685
686 * docs/release: Updated -- Savannah uses a new uploading scheme.
687
David Turnera42567b2007-01-25 12:23:37 +00006882007-01-25 David Turner <david@freetype.org>
689
Werner Lembergd7855662007-01-25 13:53:56 +0000690 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000691
Werner Lembergd7855662007-01-25 13:53:56 +0000692 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
693 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
694 functions.
David Turnera42567b2007-01-25 12:23:37 +0000695
Werner Lembergd7855662007-01-25 13:53:56 +0000696 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000697
Werner Lembergb1be9e82007-01-25 11:50:00 +00006982007-01-25 Werner Lemberg <wl@gnu.org>
699
700 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000701 correctly in a sanity check. Since this function is only used to
702 load local and global functions, any charstring that called the last
703 local/global function would fail otherwise. This fixes Savannah bug
704 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000705
706 * docs/CHANGES: Document it.
707
David Turnerb6de8d12007-01-23 15:51:50 +00007082007-01-23 David Turner <david@freetype.org>
709
Werner Lembergb1be9e82007-01-25 11:50:00 +0000710 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
711 prevented compilation when disabling both the unpatented and the
712 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000713
Werner Lembergb1be9e82007-01-25 11:50:00 +0000714
715 Fix and enable the warper to improve `light' hinting mode. This is
716 not necessarily a final version, but it seems to work well.
717
718 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
719 Disable code.
720 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
721 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
722
723 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
724 (af_warper_compute_line_best): Fix array size of `scores'.
725 (af_warper_compute): Better handling of border cases.
726 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
727 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000728
Werner Lemberg011d1112007-01-21 09:36:00 +00007292007-01-21 Werner Lemberg <wl@gnu.org>
730
Werner Lemberg42b63b22007-01-21 21:01:33 +0000731 * ChangeLog: Split off older entries into...
732 * ChangeLog.22: This new file.
733
7342007-01-21 Werner Lemberg <wl@gnu.org>
735
Werner Lemberg555258f2007-01-21 09:46:37 +0000736 * docs/CHANGES: Document SHZ fix.
737
7382007-01-21 George Williams <gww@silcom.com>
739
740 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
741 points.
742
7432007-01-21 Werner Lemberg <wl@gnu.org>
744
Werner Lemberg011d1112007-01-21 09:36:00 +0000745 * src/sfnt/ttmtx.c (tt_face_get_metrics)
746 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
747
Werner Lemberg87a5a432007-01-17 12:44:39 +00007482007-01-17 Werner Lemberg <wl@gnu.org>
749
Werner Lembergb8003292007-01-17 12:56:25 +0000750
751 * Version 2.3.0 released.
752 =========================
753
754
755 Tag sources with `VER-2-3-0-FINAL'.
756
7572007-01-17 Werner Lemberg <wl@gnu.org>
758
Werner Lemberg87a5a432007-01-17 12:44:39 +0000759 * docs/release: Updated.
760
David Turner22122722007-01-16 20:06:44 +00007612007-01-16 David Turner <david@freetype.org>
762
Werner Lemberg87a5a432007-01-17 12:44:39 +0000763 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
764 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
765 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
766 warnings.
David Turner22122722007-01-16 20:06:44 +0000767
Werner Lemberg267e1d72007-01-15 07:48:09 +00007682007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
769
770 * builds/amiga/makefile, builds/amiga/makefile.os4,
771 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
772
773 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
774
Werner Lemberg8c4120d2007-01-15 06:42:40 +00007752007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
776
777 Fix various compiler warnings.
778
779 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
780 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
781 s/index/strike_index/.
782 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
783
784 * src/gxvalid/gxvmorx5.c
785 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
786
787 * src/truetype/ttinterp.c (Compute_Point_Displacement),
788 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
789 uninitialized variables.
790
Werner Lemberg6164a9d2007-01-13 23:01:36 +00007912007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
792
793 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
794
Werner Lemberg281c1482007-01-13 22:50:51 +00007952007-01-13 Werner Lemberg <wl@gnu.org>
796
797 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
798 versions up to 0x3FF without complaining.
799
Werner Lembergac250b22007-01-13 14:01:36 +00008002007-01-13 Derek Clegg <dclegg@apple.com>
801
802 Add FT_Get_PS_Font_Info interface to CFF driver.
803
804 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
805 (CFF_FontRec): Add `font_info' field.
806
807 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
808 (cff_font_done): Free font->font_info if necessary.
809
810 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
811 (cff_service_ps_info): Register cff_ps_get_font_info.
812
Werner Lemberg23df31a2007-01-13 08:45:00 +00008132007-01-13 Werner Lemberg <wl@gnu.org>
814
815 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
816 with C++ compiler.
817
818 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
819 af_glyph_hints_dump_edges): Ditto.
820
821 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
822 `modules.cfg').
823
824 * src/sfnt/ttsbit0.h: Remove.
825
826 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
827
Werner Lemberg27cf9de2007-01-13 07:34:23 +00008282007-01-12 David Turner <david@freetype.org>
829
830 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
831 bug in the bitmap emboldener if the pitch of the source bitmap is
832 much larger than its width.
833
834 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
835 compilation warning.
836
Werner Lemberg6d96d312007-01-12 10:30:19 +00008372007-01-12 Werner Lemberg <wl@gnu.org>
838
839 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
840 `automake' CVS module from sources.redhat.com.
841
Werner Lemberg17432b52007-01-12 09:28:44 +00008422007-01-11 Werner Lemberg <wl@gnu.org>
843
844 * src/type1/t1load.c (is_space): Removed.
845 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
846 (parse_charstrings): Use IS_PS_TOKEN.
847
848
849 * autogen.sh: Avoid bash specific syntax.
850
David Turner038ace22007-01-11 15:00:59 +00008512007-01-11 David Turner <david@freetype.org>
852
Werner Lemberg17432b52007-01-12 09:28:44 +0000853 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000854
Werner Lemberg17432b52007-01-12 09:28:44 +0000855 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000856
Werner Lemberg17432b52007-01-12 09:28:44 +0000857 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
858 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000859 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000860
Werner Lemberg17432b52007-01-12 09:28:44 +0000861 * autogen.sh: Small fix to get it working on Mac OS X properly:
862 The issue is that GNU libtool is called `glibtool' on this platform,
863 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000864
David Turner2628ea92007-01-10 13:15:56 +00008652007-01-10 David Turner <david@freetype.org>
866
Werner Lemberg17432b52007-01-12 09:28:44 +0000867 * all-sources: Tag all sources with VER-2-3-0-RC1 and
868 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000869
Werner Lemberg17432b52007-01-12 09:28:44 +0000870 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
871 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
872 version number to 2.3.0.
873
874 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
875 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000876
877 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000878 include/freetype/ftlcdfil.h: Update reference documentation with
879 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000880
Werner Lemberg17432b52007-01-12 09:28:44 +0000881 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
882 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000883
Werner Lembergbf02d392007-01-10 07:07:37 +00008842007-01-10 Derek Clegg <dclegg@apple.com>
885
886 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
887 values.
888
David Turnerf48b60e2007-01-08 15:15:32 +00008892007-01-08 David Turner <david@freetype.org>
890
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000891 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000892
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000893 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
894 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000895 corresponding to a given character pixel size.
896
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000897 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
898 `gasp' table, in order to avoid potential problems with later
899 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000900
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000901 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
902 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000903
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000904 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
905 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
906 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
907 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000908
Werner Lemberge6b6f372007-01-07 00:06:47 +00009092007-01-07 Werner Lemberg <wl@gnu.org>
910
Werner Lembergb8004d22007-01-07 09:13:38 +0000911 * src/cid/cidparse.c (cid_parser_new): Improve error message for
912 Type 11 fonts.
913 Scan for `/sfnts' token.
914
9152007-01-07 Werner Lemberg <wl@gnu.org>
916
917 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000918
Werner Lembergbe5f7972007-01-06 07:51:48 +00009192007-01-06 Werner Lemberg <wl@gnu.org>
920
921 * src/cff/cffload.c (cff_index_init): Remove unused variable.
922 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
923
David Turnera8cf42b2007-01-04 16:46:46 +00009242007-01-04 David Turner <david@freetype.org>
925
Werner Lembergf6294392007-01-06 07:47:45 +0000926 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
927 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000928
Werner Lembergf6294392007-01-06 07:47:45 +0000929
930 Do not allocate interpreter-specific tables in memory if we are not
931 going to load glyphs with the bytecode interpreter anyway.
932
933 * src/truetype/ttgload.c (tt_loader_init): Load execution context
934 only if glyph is hinted.
935 Updated.
936 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
937 and `cvs_ready'.
938 Add `tt_size_ready_bytecode' declaration.
939 * src/truetype/ttobjs.c (tt_size_done_bytecode,
940 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
941 (tt_size_init): Move most code into `tt_size_init_bytecode'.
942 (tt_size_done): Move most code into `tt_size_done_bytecode'.
943 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000944
David Turner91a34022007-01-05 14:47:08 +0000945
Werner Lembergf6294392007-01-06 07:47:45 +0000946 Don't extract the metrics table from the SFNT font file. Instead,
947 reparse it on each glyph load. The runtime difference is not
948 noticeable, and it can save a lot of heap memory when memory-mapped
949 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000950
Werner Lembergf6294392007-01-06 07:47:45 +0000951 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
952 `horz_metrics_offset' and `vert_metrics_ofset'.
953 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
954 Updated.
955
956
957 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
958
959
960 Do not load the CFF index offsets into memory, since this wastes a
961 *lot* of heap memory with large Asian CFF fonts. There is no
962 significant performance loss.
963
964 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
965 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
966 `data_size'.
967 (CFF_CharsetRec): Add field `num_glyphs'.
968
969 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
970 cff_charset_cid_to_gindex): New functions.
971 (cff_new_index): Renamed to...
972 (cff_index_init): This. Update all callers.
973 Updated -- some code has been moved to `cff_index_load_offsets'.
974 (cff_done_index): Renamed to...
975 (cff_index_done): This. Update all callers.
976 (cff_index_get_pointers, cff_index_access_element): Updated to use
977 stream offsets.
978 (cff_charset_compute_cids): Set `num_glyphs' field.
979 (cff_encoding_load): Updated.
980
981 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000982
9832007-01-04 David Turner <david@freetype.org>
984
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000985 * docs/INSTALL.UNIX: Simplify some parts, add reference to
986 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000987
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000988 * README.CVS: Add common problem description and solution
989 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000990
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000991 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000992
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000993 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000994
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000995 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000996
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000997 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
998 (TWorker): This.
999 Remove `count_table' and `memory'.
1000 Make `grays' a pointer.
1001 (TRaster): New structure.
1002 (count_table): New static array.
1003 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1004 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1005 ft_black_set_mode, ft_black_render): Updated.
1006 (ft_black_init): Don't initialize `count_table'.
1007 (ft_black_reset): Use the render pool. This saves about 6KB of
1008 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001009
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001010 * src/smooth/ftgrays.c (TRaster): Replaced with...
1011 (TWorker): This.
1012 Remove `memory'.
1013 (TRaster): New structure.
1014
1015 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1016 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1017 gray_render_span, gray_raster_render): Updated.
1018 (gray_raster_reset): Use the render pool. This saves about 6KB of
1019 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001020
David Turner8a6c44e2007-01-04 17:03:11 +00001021 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1022 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001023 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1024 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1025 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001026
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001027 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1028 Remove a typo that results in no hinting and a memory leak with some
1029 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001030
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001031 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001032 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001033 CFF_Faces in it. We need to close all faces before destroying the
1034 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001035
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010362007-01-02 Werner Lemberg <wl@gnu.org>
1037
1038 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1039 Remove compiler warning.
1040
David Turner9207e002007-01-02 16:58:13 +000010412007-01-02 David Turner <david@freetype.org>
1042
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001043 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001044
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000010452006-12-31 Masatake YAMATO <jet@gyve.org>
1046
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001047 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1048 function.
1049 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001050 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001051 `gxv_kern_subtable_fmt0_pairs_validate'.
1052
David Turner115b4422006-12-22 11:37:05 +000010532006-12-22 David Turner <david@freetype.org>
1054
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001055 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1056 warnings.
David Turner115b4422006-12-22 11:37:05 +00001057
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001058 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1059 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001060
Werner Lemberg4755bf72006-12-16 08:58:44 +000010612006-12-16 Anders Kaseorg <anders@kaseorg.com>
1062
1063 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1064 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1065
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010662006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1067
Werner Lemberg9b774e22007-01-16 06:11:27 +00001068 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001069 sync with the modification by Jens Claudius on 2006-08-22; cf.
1070 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 +00001071
10722006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1073
1074 * src/base/ftmac.c: Specialized for Mac OS X only.
1075 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1076 * builds/unix/configure.raw: Ditto. When explicit switches for
1077 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1078 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1079
10802006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1081
1082 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1083 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1084 instead of src/base/ftmac.c
1085 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1086 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1087 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1088 that cannot be built at present.
1089
10902006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1091
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001092 * src/base/ftobjs.c: Improvement of resource fork handler for
1093 POSIX, cf.
1094 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001095 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1096 format or .dfont, to simulate the face index number counted by ftmac.c.
1097 (IsMacResource): Return the number of scalable faces correctly.
1098
Werner Lembergec5b4502006-12-10 07:51:38 +000010992006-12-10 Werner Lemberg <wl@gnu.org>
1100
1101 * builds/toplevel.mk (version): Protect against `distclean' target.
1102
Werner Lembergb26b3142006-12-09 20:01:43 +000011032006-12-09 Werner Lemberg <wl@gnu.org>
1104
1105 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1106 or `type'.
1107
1108 * builds/freetype.mk (version): Extracted from freetype.h, using
1109 GNU make's built-in string functions.
1110 (refdoc): Use $(version) instead of static version number.
1111
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000011122006-12-08 Werner Lemberg <wl@gnu.org>
1113
1114 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1115
Werner Lemberg15c29502006-12-09 07:29:54 +000011162006-12-08 Vladimir Volovich <vvv@vsu.ru>
1117
1118 * src/tools/apinames (State): Remove final comma in structure -- xlc
1119 v5 under AIX 4.3 doesn't like this.
1120
David Turnerdbf3b432006-12-07 21:18:09 +000011212006-12-07 David Turner <david@freetype.org>
1122
Werner Lemberg256a3512006-12-08 06:49:33 +00001123 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1124 to the spacing of auto-fitted glyphs. This only impacts rare
1125 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001126
Werner Lemberg11171312006-12-03 09:43:40 +000011272006-12-03 Werner Lemberg <wl@gnu.org>
1128
1129 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1130
Werner Lemberg960ba592006-12-01 08:20:47 +000011312006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001132
Werner Lemberg960ba592006-12-01 08:20:47 +00001133 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1134 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1135 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001136
David Turner80658e52006-11-28 08:09:20 +00001137
Werner Lemberg960ba592006-12-01 08:20:47 +00001138 * include/freetype/ftxf86.h: Fix and extend comment so that it
1139 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001140
Werner Lemberg960ba592006-12-01 08:20:47 +00001141 * include/freetype/ftchapters.h: Add `font_format' section.
1142
1143
1144 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1145 to TOC in index page.
1146
11472006-11-28 David Turner <david@freetype.org>
1148
1149 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1150 trying to render into a zero-width/height bitmap, not an error code.
1151
1152 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1153
1154 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1155 ones instead.
1156
1157 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1158 variable.
David Turner80658e52006-11-28 08:09:20 +00001159
Werner Lemberg8636c292006-11-26 22:28:13 +000011602006-11-26 Pierre Hanser <hanser@club-internet.fr>
1161
1162 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1163
Werner Lemberg960ba592006-12-01 08:20:47 +000011642006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001165
Werner Lemberg960ba592006-12-01 08:20:47 +00001166 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1167 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1168 Add stubs to link the `ftgrid' test program when debugging is
1169 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001170
Werner Lemberg960ba592006-12-01 08:20:47 +000011712006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001172
1173 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001174 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1175
1176 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1177 Emit more sensible information.
1178
1179 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1180
1181 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1182 rounding of blue values.
1183 (af_latin_hints_compute_segments): Hint segment heights.
1184 (af_latin_hints_link_segments): Reduce `len_score' value.
1185 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1186 value and use `height' member for comparisons.
1187 (af_latin_hint_edges): Extend logging message.
1188 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001189
Werner Lemberg91959bf2006-11-22 10:36:55 +000011902006-11-22 Werner Lemberg <wl@gnu.org>
1191
1192 Fix Savannah bug #15553.
1193
1194 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1195 program after a change from mono to grayscaling (and vice versa).
1196 Use correct constant for comparison to get `exec->grayscale'.
1197
Werner Lemberg913a3652006-11-19 09:19:17 +000011982006-11-18 Werner Lemberg <wl@gnu.org>
1199
1200 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001201 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001202 This patch fixes Savannah bug #18301.
1203
1204 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1205 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1206 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1207 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1208 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1209 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1210 (FNT_Load_Glyph): Check validity of `glyph_index'.
1211
David Turner7bab6ae2006-11-13 11:25:06 +000012122006-11-13 David Turner <david@freetype.org>
1213
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001214 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1215 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001216
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001217 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1218 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1219 when building the library to change the default LCD filter to be
1220 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001221
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001222 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001223
David Turner8765c712006-11-10 16:49:42 +000012242006-11-10 David Turner <david@freetype.org>
1225
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001226 * src/smooth/ftsmooth.c: API change for the LCD
1227 filter. The FT_LcdFilter value is an enumeration describing which
1228 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1229 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1230 algorithm which produces strong color fringes for everything
1231 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001232
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001233 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1234 second parameter to an enum type.
1235
1236 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1237 (_ft_lcd_filter): Rename to...
1238 (_ft_lcd_filter_fir): This.
1239 Update parameters.
1240 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1241 (FT_Library_Set_LcdFilter): Update parameters.
1242 Handle new filter modes.
1243
1244 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1245 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1246 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1247 callback and update other fields.
1248
1249 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1250 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1251 Other minor improvements.
1252
1253 * src/autofit/aflatin.c: Various tiny improvements that drastically
1254 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1255 (af_latin_hints_compute_edges): Fix typo.
1256 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001257
David Turner4e9cc3c2006-11-09 16:31:52 +000012582006-11-09 David Turner <david@freetype.org>
1259
Werner Lemberg49c77a82006-11-09 21:51:57 +00001260 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1261 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001262
Werner Lemberg5e430892006-11-07 09:35:03 +000012632006-11-07 Zhe Su <james.su@gmail.com>
1264
1265 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1266 also.
1267
Werner Lemberg111b5ae2006-11-03 09:40:12 +000012682006-11-03 Werner Lemberg <wl@gnu.org>
1269
1270 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1271
David Turner40604742006-11-02 16:37:35 +000012722006-11-02 David Turner <david@freetype.org>
1273
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001274 Add a few tweaks to better handle serif fonts.
1275 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001276
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001277 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1278 segments that are less than 1.5 pixels high. This gets rid of
1279 *many* corner cases with serifs.
1280 (af_latin_align_linked_edge): Add logging message.
1281 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1282 Add logging messages.
1283 Handle AF_EDGE_FLAG flag specially.
1284
1285 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1286 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1287
1288 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1289 Update external declarations.
1290 (af_corner_orientation, af_corner_is_flat): Replaced by...
1291
1292 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1293 ft_corner_is_flat): These declarations.
1294
1295 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1296 Comment out. Replaced by...
1297
1298 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1299 These functions. Update all callers.
1300 (FT_Add64) [!FT_LONG64]: Simplify.
1301
1302 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1303 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1304 production of garbage by missing lots of segments.
1305
1306 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1307
1308 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1309 [AF_DEBUG]: Set _af_debug_hints.
1310
1311
1312 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1313 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1314 and ft_corner_orientation.
1315
1316
1317 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001318
Werner Lemberge88c5262006-10-24 05:46:26 +000013192006-10-24 Werner Lemberg <wl@gnu.org>
1320
1321 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1322
1323 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1324 as argument.
1325
David Turnera1861392006-10-23 16:00:59 +000013262006-10-23 Zhe Su <zsu@novell.com>
1327
Werner Lemberg715e96e2006-10-24 05:28:45 +00001328 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1329 better deal with broken Asian fonts with strange glyphs, having
1330 self-intersections and other peculiarities. The used algorithm is
1331 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001332
David Turnere140f142006-10-23 08:56:57 +000013332006-10-23 David Turner <david@freetype.org>
1334
Werner Lemberg715e96e2006-10-24 05:28:45 +00001335 Speed up the CFF font loader. With some large CFF fonts,
1336 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001337
Werner Lemberg715e96e2006-10-24 05:28:45 +00001338 * src/cff/cffload.c (cff_get_offset): Removed.
1339 (cff_new_index): Inline functionality of `cff_get_offset'.
1340 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1341 (cff_charset_done): Call `cff_charset_free_cids'.
1342 (cff_charset_load): Call `cff_charset_compute_cids'.
1343 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1344
1345 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1346 with FT_NEXT_XXX.
1347
1348
1349 Speed up the Postscript hinter, with more than 100% speed increase
1350 on my machine.
1351
1352 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1353 psh_corner_orientation): New functions.
1354 (psh_glyph_compute_inflections): Merge loops for efficiency.
1355 Use `psh_corner_orientation'.
1356 (psh_glyph_init): Use `psh_corner_is_flat'.
1357 (psh_hint_table_find_strong_point): Renamed to...
1358 (psh_hint_table_find_strong_points): This.
1359 Rewrite, adding argument to handle all points at once.
1360 Update all callers.
1361 (PSH_MAX_STRONG_INTERNAL): New macro.
1362 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001363
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013642006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1365
1366 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001367 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001368
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000013692006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1370
1371 * docs/INSTALL.CROSS: New document file for cross-building.
1372
1373 * builds/unix/configure.raw: Preliminary cross-building support.
1374 Find native C compiler and pass it by CC_BUILD, and
1375 find suffix for native executable and pass it by EXEEXT_BUILD.
1376 Also suffix for target executable is passed by EXEEXT.
1377
Werner Lembergb9e6d692006-10-15 08:58:40 +00001378 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1379 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001380 CC_BUILD and EXEEXT_BUILD.
1381
Werner Lembergb9e6d692006-10-15 08:58:40 +00001382 * builds/exports.mk (APINAMES_EXE): Change the extension for
1383 apinames from the suffix for target (E) to that for building host
1384 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001385
Werner Lemberg82a07e92006-10-12 06:20:44 +000013862006-10-12 Werner Lemberg <wl@gnu.org>
1387
1388 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1389 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1390 which reference those files.
1391
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000013922006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1393
Werner Lembergb9e6d692006-10-15 08:58:40 +00001394 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1395 embedded in freetype2.pc and freetype-config. Use it to record
1396 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001397
1398 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1399
1400 * builds/unix/freetype-config.in: Ditto.
1401
Werner Lemberg28e17d92006-10-11 17:27:47 +000014022006-10-11 Werner Lemberg <wl@gnu.org>
1403
1404 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1405 development.
1406
Jens Claudius336d2292006-10-03 08:53:37 +000014072006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1408
1409 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1410 argument to ft_setjmp.
1411
1412 * include/freetype/internal/ftvalid.h: Add comment that
1413 ft_validator_run must not be used.
1414
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014152006-10-01 Werner Lemberg <wl@gnu.org>
1416
1417 * src/base/ftbase.c: Undo change from 2006-09-30.
1418
1419 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1420
14212006-09-30 David Turner <david@freetype.org>
1422
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001423 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1424 s/unpatented_hinting/ignore_unpatented_hinter/.
1425 Update all callers.
1426
1427 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1428 auto-hinting shall be used or not.
1429
1430 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001431
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014322006-09-30 Werner Lemberg <wl@gnu.org>
1433
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001434 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1435 in use).
1436
1437 * src/base/ftbase.c: Include `ftlcdfil.c'.
1438
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014392006-09-29 Werner Lemberg <wl@gnu.org>
1440
1441 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1442 overlapping segments. Bug reported by Stefan Koch.
1443
David Turnerad830712006-09-27 16:20:59 +000014442006-09-28 David Turner <david@freetype.org>
1445
Werner Lemberg2c002e12006-09-29 21:31:53 +00001446 Fix a bug in the automatic unpatented hinting support which prevents
1447 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001448
Werner Lemberg2c002e12006-09-29 21:31:53 +00001449 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1450 s/force_autohint/unpatented_hinting/. Update all callers.
1451
1452 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1453
1454 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001455
David Turner8a317cf2006-09-27 07:52:48 +000014562006-09-27 David Turner <david@freetype.org>
1457
Werner Lemberg2c002e12006-09-29 21:31:53 +00001458 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001459
David Turner8a317cf2006-09-27 07:52:48 +00001460
David Turnere140f142006-10-23 08:56:57 +00001461 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001462 In a default build, the function `FT_Library_SetLcdFilter' returns
1463 `FT_Err_Unimplemented_Feature'; you need to #define
1464 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1465 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001466
Werner Lemberg2c002e12006-09-29 21:31:53 +00001467 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001468
Werner Lemberg2c002e12006-09-29 21:31:53 +00001469 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1470 typedef.
1471 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1472 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001473
Werner Lemberg2c002e12006-09-29 21:31:53 +00001474 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1475 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001476
Werner Lemberg2c002e12006-09-29 21:31:53 +00001477 Handle subpixel rendering.
1478 Simplify function.
1479 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1480 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1481
1482 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1483 pointing to <freetype/ftlcdfil.h>.
1484
1485 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1486 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1487
1488 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001489
Werner Lemberge20df4a2006-09-27 06:29:21 +000014902006-09-26 David Bustin
1491
1492 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1493 correctly. Reported as Savannah bug #17843.
1494
David Turner6f8c6222006-09-26 15:42:44 +000014952006-09-26 David Turner <david@freetype.org>
1496
Werner Lemberg110246c2006-09-26 21:55:44 +00001497 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1498 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1499 horizontal and vertical hinting for the purpose of debugging the
1500 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001501
Werner Lemberg110246c2006-09-26 21:55:44 +00001502 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1503 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001504
Werner Lemberg110246c2006-09-26 21:55:44 +00001505 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1506
1507 * include/freetype/config/ftoption.h, devel/ftoption.h
1508 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1509 we want to compile LCD-optimized rendering code (à la ClearType) or
1510 not. The macro *must* be disabled in default builds of the library
1511 for patent reasons.
1512
1513 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1514 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1515 isn't defined at compile time. This only changes the content of the
1516 rendered glyph to match the one of normal gray-level rendering,
1517 hence clients should not need to be modified.
1518
1519 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001520
Werner Lemberg745ff2c2006-09-19 05:48:02 +000015212006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1522
1523 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1524 LWFN fails and both are available.
1525
David Turnerf3050052006-09-11 12:00:32 +000015262006-09-11 David Turner <david@freetype.org>
1527
Werner Lembergf9644552006-09-12 13:48:10 +00001528 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1529 report their English names through an Apple Roman
1530 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001531
Werner Lembergf9644552006-09-12 13:48:10 +00001532 If the font uses another name entry with language_id == English, it
1533 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001534
Werner Lembergf9644552006-09-12 13:48:10 +00001535 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1536 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001537
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015382006-09-05 Werner Lemberg <wl@gnu.org>
1539
1540 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001541 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001542 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1543 `HAN NOM B.ttf').
1544
1545 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1546
David Turner772e55d2006-09-05 09:45:15 +000015472006-09-05 David Turner <david@freetype.org>
1548
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001549 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001550
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001551 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1552 (TRaster): Remove `count_ex' and `count_ey'.
1553 (gray_find_cell): Remove 2nd and 3rd argument.
1554 (gray_alloc_cell): Merged with `gray_find_cell'.
1555 (gray_record_cell): Simplify.
1556 (gray_set_cell): Rewrite.
1557 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1558 (gray_render_span): Don't use FT_MEM_SET for small values.
1559 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1560 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1561 bitmap scanline.
1562 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001563
David Turneraa557a92006-09-04 16:42:44 +000015642006-09-04 David Turner <david@freetype.org>
1565
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001566 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1567 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001568
Werner Lemberg2d8629b2006-09-03 06:18:45 +000015692006-09-03 Werner Lemberg <wl@gnu.org>
1570
1571 * devel/ftoption.h: Synchronize with
1572 include/freetype/config/ftoption.h.
1573
1574 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1575 variable declaration.
1576 (gray_convert_glyph): Fix compiler warnings.
1577
David Turner6d79f212006-09-01 14:09:35 +000015782006-09-01 David Turner <david@freetype.org>
1579
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001580 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1581 to recognize a few fonts that require the automatic unpatented
1582 loader.
David Turnerbd502952006-09-01 19:05:24 +00001583
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001584 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1585 rasterizer. The speed improvement is between 15% and 25%, depending
1586 on the font data.
1587
1588 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1589 (TCell): Redefine.
1590 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1591 (gray_init_cells): Updated.
1592 (gray_find_cell, gray_alloc_cell): New functions.
1593 (gray_record_cell): Rewritten to use `gray_find_cell' and
1594 `gray_alloc_cell'.
1595 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1596 QSORT_THRESHOLD):
1597 Removed.
1598 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1599 gray_dump_cells): Removed.
1600 (gray_sweep): Rewritten.
1601 (gray_convert_glyph): Rewrite code which used one of the sorting
1602 functions.
1603 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001604
Werner Lembergd898aed2006-08-29 09:50:34 +000016052006-08-29 Dr. Werner Fink <werner@suse.de>
1606
1607 * configure: Make it possible to handle configure options which
1608 have strings containing spaces.
1609
16102006-08-27 David Turner <david@freetype.org>
1611
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001612 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1613 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1614 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1615
1616 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1617 src/truetype/truetype.c, src/truetype/ttdriver.c,
1618 src/truetype/ttgload.c, src/truetype/ttgload.h,
1619 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1620 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1621 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1622
1623 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1624 member `force_autohint'.
1625
1626 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1627
1628 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1629 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001630
Jens Claudiusa787f452006-08-27 11:26:18 +000016312006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1632
1633 Fix miscellaneous compiler warnings.
1634
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001635 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1636 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001637
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001638 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1639 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1640 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001641
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001642 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1643 volatileness of argument to ft_longjmp. Spotted by Werner
1644 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001645
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001646 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1647 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001648
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001649 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1650 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001651
Werner Lembergc4c35b72006-08-27 08:03:46 +000016522006-08-27 Werner Lemberg <wl@gnu.org>
1653
1654 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1655 Reported by Jens.
1656
Jens Claudius088e44e2006-08-22 14:24:30 +000016572006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001658
Jens Claudius088e44e2006-08-22 14:24:30 +00001659 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001660 about addresses of volatile objects passed as function arguments as
1661 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001662
Werner Lembergc4c35b72006-08-27 08:03:46 +00001663 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1664 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001665
1666 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1667 argument `table' a pointer to a volatile object.
1668
1669 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1670 argument `table' a pointer to a volatile object.
1671
Jens Claudius2652bd52006-08-18 17:20:37 +000016722006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1673
1674 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1675 variable `_sfnt' as volatile since it must keep its value across
1676 a call to ft_setjmp.
1677 (gxv_validate): Same for local variables `memory' and `valid'.
1678 (classic_kern_validate): Same for local variables `memory',
1679 `ckern', and `valid'.
1680
1681 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1682 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1683 `jstf', and 'valid'.
1684
1685 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1686 local variable `cmap'.
1687
David Turner9fbfc6a2006-08-16 09:11:31 +000016882006-08-16 David Turner <david@freetype.org>
1689
Werner Lemberg12342992006-08-19 11:18:09 +00001690 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1691 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001692
Werner Lemberg12342992006-08-19 11:18:09 +00001693 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1694 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001695
David Turner33f5f242006-08-16 16:50:55 +00001696
Werner Lemberg12342992006-08-19 11:18:09 +00001697 Improvements to native TrueType hinting. This is a first try,
1698 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1699
1700 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1701 `extra_points2'.
1702
1703 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1704 `orus'.
1705
1706 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1707 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1708 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1709 handle `extra_points2'.
1710
1711 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1712 Remove compiler warning.
1713 (cur_to_arg): Remove macro.
1714 (TT_Hint_Glyph): Updated.
1715 (TT_Process_Simple_Glyph): Handle `orus'.
1716
1717 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1718 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1719 (LOC_Ins_IUP): Renamed to...
1720 (IUP_WorkerRec): This.
1721 Add `orus' member.
1722 (Shift): Renamed to...
1723 (_iup_worker_shift): This.
1724 Updated.
1725 (Interp): Renamed to...
1726 (_iup_worker_interpolate): This.
1727 Updated to handle `orus'.
1728 (Ins_IUP): Updated.
1729
1730 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1731 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001732
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017332006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1734
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001735 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001736 build ftvalid in ft2demos. This has been inadvertedly changed
1737 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001738
17392006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1740
Werner Lemberg12342992006-08-19 11:18:09 +00001741 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1742 Jens:
1743 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001744
Werner Lemberg12342992006-08-19 11:18:09 +00001745 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1746 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001747
1748 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1749
Jens Claudius9950adc2006-08-13 12:14:36 +000017502006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1751
Werner Lemberg12342992006-08-19 11:18:09 +00001752 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1753 T1_TOKEN_TYPE_KEY.
1754 (T1_FieldRec): Add `dict'.
1755 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1756 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1757 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001758
Werner Lemberg12342992006-08-19 11:18:09 +00001759 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1760 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001761
1762 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1763
1764 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001765 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1766 not T1_TOKEN_TYPE_ANY.
1767 (ps_parser_load_field): Make sure a token that should be a string or
1768 name is really a string or name.
1769 Avoid memory leak if a keyword has been already encountered and its
1770 value is overwritten.
1771 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1772 T1_FIELD_XXX.
1773 (parse_dict): Ignore keywords that occur in the wrong dictionary
1774 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001775
Werner Lemberg12342992006-08-19 11:18:09 +00001776 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1777 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001778
Werner Lemberg12342992006-08-19 11:18:09 +00001779 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1780 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001781
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000017822006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1783
1784 Move creation of field `buildchar' of T1_DecoderRec out of
1785 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1786 of it.
1787
1788 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1789 and `T1_Compute_Max_Advance'.
1790
1791 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1792 Remove field `face', add `len_buildchar'.
1793
1794 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1795 field `buildchar'.
1796
1797 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1798 finisher for T1_Decoder.
1799 (cid_slot_load_glyph): Do not ignore failure when initializing the
1800 T1_Decoder.
1801
1802 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1803 Updated.
1804 (t1_decoder_init): Remove initialization of fields `buildchar' and
1805 `len_buildchar'.
1806 (t1_decoder_done): Remove deallocation of field `buildchar'.
1807
1808 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1809 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1810 T1_Decoder.
1811 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1812 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1813 case of error.
1814
1815 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1816 `buildchar' of T1_FaceRec.
1817
1818 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1819 `buildchar' of T1_FaceRec.
1820
Werner Lemberg1a380e02006-07-14 18:28:08 +000018212006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1822
1823 * freetype2/include/freetype/internal/psaux.h: New macros
1824 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1825 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1826 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1827 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1828 (T1_DecoderRec): New fields `buildchar' and `face'.
1829 (IS_PS_TOKEN): New macro.
1830
1831 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1832 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1833
1834 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1835 `default_design_vector' and `num_default_design_vector'.
1836
1837 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1838 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1839 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1840
1841 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1842 `token' argument to be NULL if we want only to count the number of
1843 tokens.
1844 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1845 want to skip the array.
1846 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1847 want to skip the array.
1848
1849 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1850 support for (partially commented out) othersubrs 19-25, 27, and 28.
1851 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1852 (t1_decoder_done): Release new field `buildchar'.
1853
1854 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1855 functions.
1856 (t1_keywords): Register them.
1857 (t1_allocate_blend): Updated.
1858 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1859 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1860 (parse_dict): Remove `keyword_flags' argument.
1861 Use new macro IS_PS_TOKEN.
1862 Changed function so that later PostScript definitions override
1863 earlier ones.
1864 (t1_init_loader): Initialize new field `keywords_encountered'.
1865 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1866 `len_buildchar'.
1867 Remove `keywords_flags'.
1868
1869 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1870 `keywords_encountered'.
1871 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1872
1873 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1874 New entries for parsing /NDV, /CDV, and /DesignVector.
1875
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000018762006-07-07 Werner Lemberg <wl@gnu.org>
1877
1878 Add many checks to protect against malformed PCF files.
1879
1880 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1881 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1882
1883 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1884 data and check that tables don't overlap (using a simple
1885 bubblesort).
1886 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1887 New macros which give the size of data structures in the data
1888 stream.
1889 (pcf_get_properties): Use rough estimates to get array size limits.
1890 Assign `face->nprops' and `face->properties' earlier so that a call
1891 to PCF_Face_Done can do the clean-up in case of error.
1892 Protect against invalid string offsets.
1893 (pcf_get_metrics): Clean up code.
1894 Adjust tracing message levels.
1895 Use rough estimate to get array size limit.
1896 (pcf_get_bitmaps): Clean up code.
1897 Adjust tracing message levels.
1898 Use rough estimates to get offset limits.
1899 (pcf_get_encodings): Adjust tracing message level.
1900 (pcf_get_accel): Clean up code.
1901
Werner Lemberg8eb05252006-06-27 06:20:01 +000019022006-06-26 Werner Lemberg <wl@gnu.org>
1903
1904 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1905 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1906
Werner Lemberg24703f82006-06-26 19:12:51 +000019072006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1908
1909 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1910 (t1_decoder_parse_charstrings): Operator with
1911 opcode 15 pops its two arguments.
1912 Handle the case where the pops of an othersubr may be part of a
1913 subroutine.
1914 Handle unknown othersubrs gracefully: count their operands and let
1915 the following pop operators push the operands as the results onto
1916 the Type1 stack.
1917 Improve handling of setcurrentpoint opcode.
1918
Werner Lembergc011f4c2006-06-26 09:40:00 +000019192006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1920
1921 The Type 1 parser now skips over top-level procedures as required
1922 for a `Simplified Parser'. This makes the parser more robust as it
1923 doesn't poke around in PostScript code. Additionally, it makes the
1924 FontDirectory hackery in src/type1/t1load.c unnecessary.
1925
1926 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1927 (skip_literal_string): Add FT_Error as return value.
1928 Handle escapes better.
1929 (skip_string): Add FT_Error as return value.
1930 Don't set `parser->error' but return error code directly.
1931 (skip_procedure): New function.
1932 (ps_parser_skip_PS_token): Handle procedures.
1933 Update code.
1934 (ps_parser_to_token): Update code.
1935 (ps_parser_load_field_table): Handle bbox entries also.
1936
1937 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1938 Add commented-out code for synthetic fonts.
1939
Werner Lemberga2da05c2006-06-25 06:27:27 +000019402006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1941
1942 Fix two hinting bugs as reported in
1943 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1944
1945 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1946 `first_point' member.
1947
1948 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1949 `first_point'.
1950 (TT_Process_Composite_Glyph): Always untouch points.
1951
1952 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1953 `first_point' and `last_point' in case of composite glyphs.
1954 (Ins_IUP): Fix computation of `end_point'.
1955
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000019562006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1957
Werner Lembergef3d2c22006-06-25 06:07:14 +00001958 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1959 Mac. The original patch was written by David Sachitano and Lawrence
1960 Coopet, and modified by Sean McBride for MPW compatibility. Only
1961 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001962
Werner Lembergef3d2c22006-06-25 06:07:14 +00001963 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1964 Mac OS X platforms.
1965 (OS_INLINE): Undefine before definition.
1966 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1967 FontAssociation table in FOND resource.
1968 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1969 and fontSize at each entry of FontAssociation table in FOND
1970 resource.
1971 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1972 ffStylOff of FamilyRecord header of FOND resource, the header,
1973 fontSize, fontID at each entry of FontAssociation table, and
1974 StyleMapping table.
1975 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001976
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000019772006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1978
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001979 Public API of TrueTypeGX, OpenType, and classic kern table validator
1980 should return `FT_Err_Unimplemented_Feature' if validation service
1981 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001982 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001983 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1984
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001985 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1986 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1987 unavailable.
1988 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1989 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001990
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001991 * src/base/ftotval.c (FT_OpenType_Validate): Return
1992 FT_Err_Unimplemented_Feature if OpenType validation service is
1993 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001994
Werner Lembergb10e45a2006-06-08 07:32:56 +000019952006-06-08 Werner Lemberg <wl@gnu.org>
1996
1997 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1998 errors.
1999
David Turner5f1f7502006-06-07 05:11:50 +000020002006-06-07 David Turner <david@freetype.org>
2001
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002002 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2003 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2004 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002005
David Turner457b4a82006-06-06 08:14:14 +000020062006-06-06 David Turner <david@freetype.org>
2007
Werner Lemberg4836f952006-06-06 12:54:08 +00002008 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002009
Werner Lemberg4836f952006-06-06 12:54:08 +00002010 We change `ps_unicodes_init' so that it also takes a
2011 `free_glyph_name' callback to release the glyph names returned by
2012 `get_glyph_name'
2013
2014 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2015 Renamed to ...
2016 (PS_GetGlyphNameFunc): This.
2017 (PS_FreeGlyphNameFunc): New typedef.
2018 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2019
2020 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2021 argument.
2022 (cff_sid_free_glyph_name): New function.
2023 (cff_cmap_unicode_init): Updated.
2024
2025 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2026
2027 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2028 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002029
2030
David Turner09717352006-06-04 14:33:08 +000020312006-06-04 David Turner <david@freetype.org>
2032
Werner Lembergd724f202006-06-04 15:17:41 +00002033 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2034 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002035 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002036
Werner Lembergd724f202006-06-04 15:17:41 +00002037 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2038 of `face->num_glyphs' which missed the last glyph, due to
2039 the offset-by-1 computation, since the PFR format doesn't
2040 guarantee that glyph index 0 corresponds to the `missing
2041 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002042
Werner Lemberg33779662006-05-26 06:30:05 +000020432006-05-25 Werner Lemberg <wl@gnu.org>
2044
2045 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2046 `-no-undefined'. Reported by Christian Biesinger.
2047
Werner Lemberg24773d62006-05-20 08:53:13 +000020482006-05-19 Brian Weed <bw@imaginengine.com>
2049
2050 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2051 have debug information, and debug libraries use `C7 compatible'
2052 debug info.
2053
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000020542006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2055
Werner Lemberga6523a62006-05-20 08:47:01 +00002056 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002057 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002058
Werner Lemberga6523a62006-05-20 08:47:01 +00002059 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2060 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002061
2062 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002063 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002064
20652006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2066
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002067 * build/unix/configure.raw: Add a fallback to disable Carbon
2068 dependency, if configured with no options on Mac OS X.
2069
20702006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2071
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002072 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002073 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002074 the second part of Savannah bug #16590.
2075
Werner Lemberg545c4e52006-05-17 22:55:04 +000020762006-05-18 Werner Lemberg <wl@gnu.org>
2077
2078 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2079 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2080
David Turnerdc3ff312006-05-17 12:59:35 +000020812006-05-17 David Turner <david@freetype.org>
2082
Werner Lemberg545c4e52006-05-17 22:55:04 +00002083 This is a major patch used to drastically improve the performance of
2084 loading glyphs. This both speeds up loading the glyph vectors
2085 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002086
Werner Lemberg545c4e52006-05-17 22:55:04 +00002087 We now use inline assembler code with GCC to implement `FT_MulFix',
2088 which is probably the most important function related to the
2089 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002090
Werner Lemberg545c4e52006-05-17 22:55:04 +00002091 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002092
2093
Werner Lemberg545c4e52006-05-17 22:55:04 +00002094 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2095 `cursor' and `limit'.
2096
2097 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2098 New functions.
2099 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2100 [TEST]: Remove.
2101
2102 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2103 code.
2104
2105 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2106 `FT_ZERO'
2107 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2108 (af_glyph_hints_reload: Rewrite recognition of weak points.
2109
2110 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2111 constant values out of the loops.
2112
2113 * src/autofit/aftypes.h: Updated.
2114
2115 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2116
2117 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2118 product to get orientation.
2119
2120 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2121 (FT_Stream_OpenGzip): Use it to handle small files directly in
2122 memory.
2123
2124 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2125 Improve performance.
2126
2127 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2128 `limit'.
2129
2130 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2131 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2132 exceedingly large values of number of contours. Speed up by
2133 reducing the number of loops.
2134
2135 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2136
2137
2138 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2139 used to detect rogue clients from 4 to 16. This is to prevent some
2140 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2141 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002142
Werner Lembergde2d90a2006-05-17 08:54:30 +000021432007-05-17 Werner Lemberg <wl@gnu.org>
2144
2145 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002146 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002147
21482006-05-16 Werner Lemberg <wl@gnu.org>
2149
2150 * docs/PROBLEMS: Updated icl issues.
2151
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002152----------------------------------------------------------------------------
2153
Werner Lemberg42b63b22007-01-21 21:01:33 +00002154Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002155David Turner, Robert Wilhelm, and Werner Lemberg.
2156
2157This file is part of the FreeType project, and may only be used, modified,
2158and distributed under the terms of the FreeType project license,
2159LICENSE.TXT. By continuing to use, modify, or distribute this file you
2160indicate that you have read the license and understand and accept it
2161fully.
2162
2163
2164Local Variables:
2165version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002166coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002167End: