blob: 777248a36f3cf6b43025c1c1bb8cd0dd4637efc0 [file] [log] [blame]
Werner Lemberg6c054752007-06-05 05:27:54 +000012007-06-05 Werner Lemberg <wl@gnu.org>
2
3 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
4 (pfr_glyph_load_simple): Convert assertion into normal FreeType
5 error.
6 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +00007 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
8 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +00009
10 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
11
Werner Lembergad18b362007-06-04 07:04:05 +0000122007-06-04 Werner Lemberg <wl@gnu.org>
13
14 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
15
16 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
17
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000182007-06-03 Werner Lemberg <wl@gnu.org>
19
Werner Lemberg99a320b2007-06-03 19:21:26 +000020 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
21 George Williams (with some modifications).
22
232007-06-03 Werner Lemberg <wl@gnu.org>
24
Werner Lemberg3d507fe2007-06-03 16:54:55 +000025 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
26 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
27 face == NULL. Suggested by Graham Asher.
28
Werner Lembergce280a22007-06-03 05:58:30 +0000292007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
30
31 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
32
Werner Lemberg5b591e42007-06-01 22:16:43 +0000332007-06-02 Werner Lemberg <wl@gnu.org>
34
35 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
36 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
37
38 * src/bdf/bdflib.c (bdf_load_font): Use them.
39
40 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
41
Werner Lembergb9933f42007-06-01 21:27:12 +0000422007-06-01 Werner Lemberg <wl@gnu.org>
43
44 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
45 (FTC_CMapCache_Lookup): Remove unused code.
46
Werner Lembergc793d902007-06-01 20:51:11 +0000472007-06-01 Sean McBride <sean@rogue-research.com>
48
49 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
50 unused.
51
Werner Lembergbebc7b12007-06-01 06:32:30 +0000522007-06-01 Werner Lemberg <wl@gnu.org>
53
54 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
55 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +000056 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +000057
Werner Lembergcb37b3b2007-06-01 06:49:03 +000058 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
59 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
60
Werner Lembergba03af62007-05-30 13:57:02 +0000612007-05-30 Werner Lemberg <wl@gnu.org>
62
63 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
64 against too small binary data strings.
65
66 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
67
David Turnerf0cd69c2007-05-28 15:42:09 +0000682007-05-28 David Turner <david@freetype.org>
69
Werner Lemberg99e0c182007-05-29 07:00:23 +000070 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
71 transformation. This significantly reduces the loading time of CFF
72 glyphs.
David Turner552a9562007-05-28 15:45:35 +000073
Werner Lemberg99e0c182007-05-29 07:00:23 +000074 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +000075
Werner Lemberg99e0c182007-05-29 07:00:23 +000076 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
77 hinting script to CJK, since it works well with more scripts than
78 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
79 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +000080
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000812007-05-25 Werner Lemberg <wl@gnu.org>
82
83 * docs/CHANGES: Updated.
84
Werner Lemberg6ff2ff52007-05-24 19:39:14 +0000852007-05-24 Werner Lemberg <wl@gnu.org>
86
87 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
88 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
89
902007-05-24 Graham Asher <graham.asher@btinternet.com>
91
92 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
93 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
94
David Turner0d0365e2007-05-22 09:53:44 +0000952007-05-22 David Turner <david@freetype.org>
96
Werner Lemberg1c8980e2007-05-25 07:11:12 +000097 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
98 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +000099
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000100
101 Avoid heap blowup with very large .Z font files. This fixes
102 Savannah bug #19910.
103
104 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
105 `in_limit', `pad', `pad_bits', and `in_buff' members.
106 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
107 `buf_total' members.
108
109 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
110 only one argument.
111 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000112
1132007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000114
115 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
116 (ps_dimension_set_mask_bits): Remove `const'.
117
David Turner0d0365e2007-05-22 09:53:44 +00001182007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000119
120 * src/sfnt/ttmtx.c (tt_face_get_metrics)
121 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
122
Werner Lembergb826fa72007-05-19 07:18:48 +00001232007-05-19 Derek Clegg <dclegg@apple.com>
124
125 Savannah patch #5929.
126
127 * include/freetype/tttables.h, src/base/ftobjcs.c
128 (FT_Get_CMap_Format): New function.
129
130 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
131 `format' member.
132 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
133 cmap_info->format.
134
Werner Lemberg6f99c882007-05-19 07:01:49 +00001352007-05-19 Werner Lemberg <wl@gnu.org>
136
137 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
138 before handling subglyphs so that it can be reinitialized each time.
139 This fixes Savannah bug #19859.
140
Werner Lemberg95bc9d32007-05-16 15:19:42 +00001412007-05-16 Werner Lemberg <wl@gnu.org>
142
143 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
144 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
145 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
146 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
147 tt_face_get_metrics): Fix type-punning issues.
148
David Turner0a24bd22007-05-15 10:54:10 +00001492007-05-15 David Turner <david@freetype.org>
150
151 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000152 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
153 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000154 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000155 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000156
Werner Lemberg607dec72007-05-15 06:49:37 +00001572007-05-15 Graham Asher <graham.asher@btinternet.com>
158
159 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
160 variable.
161 * src/autofit/afloader.c (af_loader_load_g): Ditto.
162
163 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
164 (open_face_from_buffer): Initialize `stream'.
165 (FT_Request_Metrics): Remove unused variable.
166 Remove redundant `break' statements.
167 (FT_Get_Track_Kerning): Remove unused variable.
168
169 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
170 afm_parse_kern_data): Remove redundant
171 `break' statements.
172 (afm_parser_parse): Ditto.
173 Don't use uninitialized variables.
174
175 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
176 Use `|' operator instead of `^' to set it.
177 Update all users.
178
179 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
180 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
181
182 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
183 comparison.
184 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
185 (TT_Load_Glyph): Remove unused variable.
186
Werner Lemberg8d463a52007-05-13 16:01:55 +00001872007-05-13 Derek Clegg <dclegg@apple.com>
188
189 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
190 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
191
David Turner711cf842007-05-11 14:36:24 +00001922007-05-11 David Turner <david@freetype.org>
193
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000194 * src/cache/ftbasic.c, include/freetype/ftcache.h
195 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
196 functions that allow us to look up glyphs using an FTC_Scaler object
197 to specify the size, making it possible to use fractional pixel
198 sizes.
199
200 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
201 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000202
Werner Lemberg94be20e2007-05-09 20:02:55 +00002032007-05-09 Graham Asher <graham.asher@btinternet.com>
204
205 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
206 (af_latin_metrics_scale_dim): Fix compiler warnings.
207
Werner Lemberg41271032007-05-06 04:51:48 +00002082007-05-06 Werner Lemberg <wl@gnu.org>
209
210 * builds/win32/visualce/freetype.sln: Removed, as requested by
211 Vincent.
212
Werner Lembergdf49e692007-05-04 06:30:05 +00002132007-05-04 Vincent RICHOMME <richom.v@free.fr>
214
215 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
216 PC targets.
217
218 * docs/CHANGES: Document them.
219
2202007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000221
222 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
223 mmap (which might happen on some RTOS). From Savannah patch #5909.
224
Werner Lemberg106eaf12007-05-03 07:07:47 +00002252007-05-03 Werner Lemberg <wl@gnu.org>
226
227 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
228 * include/freetype/freetype.h (FT_Set_Char_Size): Update
229 documentation.
230
Werner Lemberg1b5267d2007-04-28 21:06:15 +00002312007-04-28 Victor Stinner <victor.stinner@inl.fr>
232
233 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
234 `cmap'.
235
Werner Lembergcc712a22007-04-27 17:16:50 +00002362007-04-27 Werner Lemberg <wl@gnu.org>
237
238 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
239 number of points in contours. Problem reported by Victor Stinner
240 <victor.stinner@haypocalc.com>.
241 (TT_Process_Simple_Glyph): Synchronize variable types.
242
Werner Lemberg45bb18f2007-04-26 06:26:35 +00002432007-04-26 Werner Lemberg <wl@gnu.org>
244
245 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
246 zero in case of error. This fixes Savannah bug #19689.
247
David Turnera8b45e62007-05-11 14:10:30 +00002482007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
249
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000250 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
251 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000252
Werner Lembergfcc1f472007-04-10 11:51:50 +00002532007-04-10 Martin Horak <horakm@centrum.cz>
254
255 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
256 Ignore `hhea' table. This fixes Savannah bug #19261.
257
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002582007-04-09 Werner Lemberg <wl@gnu.org>
259
260 * Version 2.3.4 released.
261 =========================
262
263
264 Tag sources with `VER-2-3-4'.
265
266 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
267 version number to 2.3.4.
268
269 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
270 builds/win32/visualc/freetype.dsp,
271 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
272
273 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
274
275 * builds/unix/configure.raw (version_info): Set to 9:15:3.
276
Werner Lembergf4a52a62007-04-09 08:40:11 +00002772007-04-09 Martin Horak <horakm@centrum.cz>
278
279 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
280 memory stream to avoid a crash with the incremental memory
281 interface (Savannah bug #19260).
282
David Turner1dcb4442007-04-06 08:19:04 +00002832007-04-06 David Turner <david@freetype.org>
284
Werner Lembergc81cf612007-04-06 09:28:23 +0000285 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
286 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000287
Werner Lemberg9f83e052007-04-05 02:28:23 +00002882007-04-04 Werner Lemberg <wl@gnu.org>
289
290 * Version 2.3.3 released.
291 =========================
292
293
294 Tag sources with `VER-2-3-3'.
295
296 * docs/CHANGES: Mention CVE-2007-1351.
297
David Turner7338ec22007-04-03 14:30:34 +00002982007-04-03 David Turner <david@freetype.org>
299
300 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000301 if one of the resolution values is 0, treat it as if it were the
302 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000303
David Turnere6472c12007-04-02 13:13:54 +00003042007-04-02 David Turner <david@freetype.org>
305
Werner Lemberg94f12272007-04-03 07:19:53 +0000306 Add special code to detect `extra-light' fonts and do not snap their
307 stem widths too much to avoid bizarre hinting effects.
308
309 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
310 `extra_light' members.
311
312 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
313 them.
314 (af_latin_metrics_scale_dim): Set `extra_light'.
315 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000316
David Turner3f539692007-03-28 14:53:40 +00003172007-03-28 David Turner <david@freetype.org>
318
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000319 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000320 padding.
321
Werner Lemberga08b2172007-03-28 07:17:17 +00003222007-03-28 Werner Lemberg <wl@gnu.org>
323
324 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
325 gracefully.
326 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000327 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000328 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
329 number of code points in Unicode.
330
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000331 * builds/win32/visualc/index.html,
332 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000333 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000334 s/232/233/.
335
336 * docs/CHANGES: Mention ftdiff.
337
David Turner3b242d32007-03-26 12:03:04 +00003382007-03-26 David Turner <david@freetype.org>
339
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000340 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
341 corresponding code.
342 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000343
Werner Lemberga08b2172007-03-28 07:17:17 +0000344 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000345 computations in order to ignore single-point contours. These are
346 never rasterized and correspond in certain fonts to mark-attach
347 points that are very far from the glyph's real outline, ruining the
348 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000349
Werner Lemberga08b2172007-03-28 07:17:17 +0000350 * src/autofit/afloader.c (af_loader_load_g): In the case of
351 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
352 Otherwise code that uses them will most certainly ruin the fixed
353 advance property.
David Turner23553d62007-03-26 13:37:17 +0000354
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000355 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
356 documentation and bump version number to 2.3.3.
357
358 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
359
360 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000361
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003622007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
363
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000364 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
365 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000366 * builds/vms/ftconfig.h: Ditto.
367 * include/freetype/config/ftconfig.h: Ditto.
368
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00003692007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
370
Werner Lemberg14ffe092007-03-22 06:12:43 +0000371 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
372 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000373 proposed by Sean McBride:
374 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
375
3762007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
377
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000378 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
379 setjmp, proposed by Sean McBride:
380 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
381
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003822007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
383
Werner Lembergc9f6c662007-03-21 13:30:14 +0000384 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
385 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
386 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000387
David Turner74c34eb2007-03-18 07:19:31 +00003882007-03-18 David Turner <david@freetype.org>
389
Werner Lembergc9f6c662007-03-21 13:30:14 +0000390 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
391 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000392
Werner Lembergc9f6c662007-03-21 13:30:14 +0000393 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000394
David Turner89020d92007-03-17 17:48:57 +00003952007-03-17 David Turner <david@freetype.org>
396
Werner Lembergc9f6c662007-03-21 13:30:14 +0000397 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
398 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000399
Werner Lemberg25d592a2007-03-09 07:59:35 +00004002007-03-09 Werner Lemberg <wl@gnu.org>
401
402 * Version 2.3.2 released.
403 =========================
404
405
406 Tag sources with `VER-2-3-2'.
407
408 * builds/win32/visualc/index.html,
409 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000410 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000411 s/231/232/.
412
David Turner3a51afa2007-03-08 10:50:38 +00004132007-03-08 David Turner <david@freetype.org>
414
Werner Lemberg25d592a2007-03-09 07:59:35 +0000415 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000416
Werner Lemberg25d592a2007-03-09 07:59:35 +0000417 * builds/unix/configure.raw (version_info): Set to 9:13:3.
418
419 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
420
421 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000422
Werner Lemberg1e259de2007-03-08 15:39:21 +0000423 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
424 function to work properly, over-writing user-provided buffers in
425 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000426
David Turner121cad52007-03-08 16:43:50 +0000427
Werner Lemberg3d92f082007-03-06 11:59:24 +00004282007-03-05 Werner Lemberg <wl@gnu.org>
429
430 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
431 macro for `strstr'.
432
433 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
434 `trick_names', as suggested by Ivan Nincic.
435
David Turner085bc6e2007-03-05 17:40:03 +00004362007-03-05 David Turner <david@freetype.org>
437
Werner Lembergd112cf02007-03-06 12:06:56 +0000438 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
439 case FT_Init_FreeType fails for some reason. Problem reported by
440 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000441
Werner Lembergd112cf02007-03-06 12:06:56 +0000442 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
443 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
444 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
445 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000446
Werner Lembergd112cf02007-03-06 12:06:56 +0000447 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
448 signed values, not unsigned ones. Problem reported by Johannes
449 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000450
David Turner601aefe2007-02-21 16:47:49 +00004512007-02-21 David Turner <david@freetype.org>
452
Werner Lembergde5e6862007-02-25 21:06:43 +0000453 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
454 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000455
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004562007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
457
458 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
459 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
460 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
461
Werner Lemberga0915172007-02-16 08:12:50 +00004622007-02-16 Werner Lemberg <wl@gnu.org>
463
464 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
465 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
466
David Turner2c4500e2007-02-14 15:08:47 +00004672007-02-14 David Turner <david@freetype.org>
468
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000469 It seems that the following changes fix most of the known
470 interpreter problems with my fonts, but more testing is needed,
471 though.
472
473 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
474 (TT_MulFix14): Rewrite.
475 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
476 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000477
Werner Lembergc6a14082007-02-12 22:08:15 +00004782007-02-12 Werner Lemberg <wl@gnu.org>
479
480 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
481 warnings.
482
483 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
484 (bdf_interpret_style): Ditto.
485
David Turnerc0f9c4a2007-02-12 14:55:03 +00004862007-02-12 David Turner <david@freetype.org>
487
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000488 Simplify projection and dual-projection code interface.
489
Werner Lemberg406d25f2007-02-12 22:01:18 +0000490 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
491 FT_Vector' as argument type.
492 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
493 Updated.
494 (CUR_fast_project, CUR_fast_dualproj): New macros.
495 (Project, Dual_Project, Project_x, Project_y): Updated.
496 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
497 macros.
498
499
500 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
501 adjustments for the non-light auto-hinted modes. Gets rid of
502 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000503
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000504 * src/autofit/aflatin.c (af_latin_hints_link_segments,
505 af_latin_hints_compute_edges): Slight optimization of the segment
506 linker and better handling of serif segments to get rid of broken
507 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000508
David Turnerc0f9c4a2007-02-12 14:55:03 +0000509
Werner Lemberg442bfb82007-02-12 21:44:10 +0000510 Introduce new string functions and the corresponding macros to get
511 rid of various uses of strcpy and other `evil' functions, as well as
512 to simplify a few things.
513
514 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
515 ft_mem_strcpyn): New declarations.
516 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
517 macros.
518 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
519 functions.
520
521 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
522 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
523 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
524 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
525 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
526 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
527 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
528 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000529
Werner Lemberg406d25f2007-02-12 22:01:18 +0000530 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
531
Werner Lemberg582067d2007-02-11 15:03:05 +00005322007-02-11 Werner Lemberg <wl@gnu.org>
533
534 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
535 non-spacing glyphs.
536
Werner Lemberg8f474532007-02-07 08:31:01 +00005372007-02-07 Tom Parker <palfrey@tevp.net>
538
539 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
540 pointer.
541
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005422007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
543
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000544 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
545 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000546 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000547 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
548 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
549 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
550 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000551
552 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
553 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000554 * builds/mac/ftmac.c: Ditto.
555
5562007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
557
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000558 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000559 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000560 #include <ftmac.c>.
561
5622007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
563
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000564 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
565 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
566 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
567 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
568 FT_GetFilePath_From_Mac_ATS_Name.
569 * builds/mac/ftmac.c: Ditto.
570
5712007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
572
Werner Lembergdcbb7082007-02-08 08:54:09 +0000573 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000574 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
575 for passing to FT_New_Face_From_FSSpec.
576
5772007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
578
Werner Lembergdcbb7082007-02-08 08:54:09 +0000579 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000580 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000581
582 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
583 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000584 * builds/mac/ftmac.c (OS_INLINE): Ditto.
585
Werner Lemberg313d7772007-02-01 08:10:45 +00005862007-02-01 Werner Lemberg <wl@gnu.org>
587
588 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
589 Explain why applications shouldn't use it. Found by Alexei.
590
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005912007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000592
593 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
594 message.
595
596 * src/gxvalid/gxvmort1.c
597 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
598 message.
599
Werner Lemberg53935932007-01-31 08:53:02 +00006002007-01-31 Werner Lemberg <wl@gnu.org>
601
602
603 * Version 2.3.1 released.
604 =========================
605
606
607 Tag sources with `VER-2-3-1-FINAL'.
608
609 * builds/win32/visualc/freetype.dsp,
610 builds/win32/visualc/freetype.vcproj: s/230/231/.
611 * builds/win32/visualc/index.html: s/221/231/.
612
613 * vms_make.com: Add `ftgasp'.
614
David Turnera7ee6082007-01-30 10:33:53 +00006152007-01-30 David Turner <david@freetype.org>
616
Werner Lemberg53935932007-01-31 08:53:02 +0000617 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000618
Werner Lemberg53935932007-01-31 08:53:02 +0000619 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000620
Werner Lemberg25d592a2007-03-09 07:59:35 +0000621 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000622 s/2.3.0/2.3.1/.
623
624 * builds/unix/configure.raw (version_info): Set to 9:12:3.
625
626
627 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
628 (af_loader_load_g): Disable the warper (i.e., the light hinting
629 improvements) to make a 2.3.1 bugfix release before introducing a
630 new feature. This should give us more time to tune and improve the
631 warper for the next release.
632
633 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000634
David Turnerd91eebd2007-01-26 15:05:41 +00006352007-01-25 David Turner <david@freetype.org>
636
Werner Lembergbf241762007-01-26 16:08:49 +0000637 For light auto-hinting, improve glyph advance widths and resurrect
638 normal/full hinting to its normal quality.
639
640 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
641 and `xmax_delta'.
642 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
643 and `xmax_delta'.
644
645 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
646 preprocessor conditional with if-clause, handling both light and
647 normal mode.
648
649 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
650 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000651
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00006522007-01-25 Werner Lemberg <wl@gnu.org>
653
654 * docs/release: Updated -- Savannah uses a new uploading scheme.
655
David Turnera42567b2007-01-25 12:23:37 +00006562007-01-25 David Turner <david@freetype.org>
657
Werner Lembergd7855662007-01-25 13:53:56 +0000658 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000659
Werner Lembergd7855662007-01-25 13:53:56 +0000660 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
661 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
662 functions.
David Turnera42567b2007-01-25 12:23:37 +0000663
Werner Lembergd7855662007-01-25 13:53:56 +0000664 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000665
Werner Lembergb1be9e82007-01-25 11:50:00 +00006662007-01-25 Werner Lemberg <wl@gnu.org>
667
668 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000669 correctly in a sanity check. Since this function is only used to
670 load local and global functions, any charstring that called the last
671 local/global function would fail otherwise. This fixes Savannah bug
672 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000673
674 * docs/CHANGES: Document it.
675
David Turnerb6de8d12007-01-23 15:51:50 +00006762007-01-23 David Turner <david@freetype.org>
677
Werner Lembergb1be9e82007-01-25 11:50:00 +0000678 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
679 prevented compilation when disabling both the unpatented and the
680 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000681
Werner Lembergb1be9e82007-01-25 11:50:00 +0000682
683 Fix and enable the warper to improve `light' hinting mode. This is
684 not necessarily a final version, but it seems to work well.
685
686 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
687 Disable code.
688 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
689 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
690
691 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
692 (af_warper_compute_line_best): Fix array size of `scores'.
693 (af_warper_compute): Better handling of border cases.
694 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
695 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000696
Werner Lemberg011d1112007-01-21 09:36:00 +00006972007-01-21 Werner Lemberg <wl@gnu.org>
698
Werner Lemberg42b63b22007-01-21 21:01:33 +0000699 * ChangeLog: Split off older entries into...
700 * ChangeLog.22: This new file.
701
7022007-01-21 Werner Lemberg <wl@gnu.org>
703
Werner Lemberg555258f2007-01-21 09:46:37 +0000704 * docs/CHANGES: Document SHZ fix.
705
7062007-01-21 George Williams <gww@silcom.com>
707
708 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
709 points.
710
7112007-01-21 Werner Lemberg <wl@gnu.org>
712
Werner Lemberg011d1112007-01-21 09:36:00 +0000713 * src/sfnt/ttmtx.c (tt_face_get_metrics)
714 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
715
Werner Lemberg87a5a432007-01-17 12:44:39 +00007162007-01-17 Werner Lemberg <wl@gnu.org>
717
Werner Lembergb8003292007-01-17 12:56:25 +0000718
719 * Version 2.3.0 released.
720 =========================
721
722
723 Tag sources with `VER-2-3-0-FINAL'.
724
7252007-01-17 Werner Lemberg <wl@gnu.org>
726
Werner Lemberg87a5a432007-01-17 12:44:39 +0000727 * docs/release: Updated.
728
David Turner22122722007-01-16 20:06:44 +00007292007-01-16 David Turner <david@freetype.org>
730
Werner Lemberg87a5a432007-01-17 12:44:39 +0000731 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
732 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
733 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
734 warnings.
David Turner22122722007-01-16 20:06:44 +0000735
Werner Lemberg267e1d72007-01-15 07:48:09 +00007362007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
737
738 * builds/amiga/makefile, builds/amiga/makefile.os4,
739 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
740
741 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
742
Werner Lemberg8c4120d2007-01-15 06:42:40 +00007432007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
744
745 Fix various compiler warnings.
746
747 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
748 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
749 s/index/strike_index/.
750 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
751
752 * src/gxvalid/gxvmorx5.c
753 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
754
755 * src/truetype/ttinterp.c (Compute_Point_Displacement),
756 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
757 uninitialized variables.
758
Werner Lemberg6164a9d2007-01-13 23:01:36 +00007592007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
760
761 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
762
Werner Lemberg281c1482007-01-13 22:50:51 +00007632007-01-13 Werner Lemberg <wl@gnu.org>
764
765 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
766 versions up to 0x3FF without complaining.
767
Werner Lembergac250b22007-01-13 14:01:36 +00007682007-01-13 Derek Clegg <dclegg@apple.com>
769
770 Add FT_Get_PS_Font_Info interface to CFF driver.
771
772 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
773 (CFF_FontRec): Add `font_info' field.
774
775 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
776 (cff_font_done): Free font->font_info if necessary.
777
778 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
779 (cff_service_ps_info): Register cff_ps_get_font_info.
780
Werner Lemberg23df31a2007-01-13 08:45:00 +00007812007-01-13 Werner Lemberg <wl@gnu.org>
782
783 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
784 with C++ compiler.
785
786 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
787 af_glyph_hints_dump_edges): Ditto.
788
789 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
790 `modules.cfg').
791
792 * src/sfnt/ttsbit0.h: Remove.
793
794 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
795
Werner Lemberg27cf9de2007-01-13 07:34:23 +00007962007-01-12 David Turner <david@freetype.org>
797
798 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
799 bug in the bitmap emboldener if the pitch of the source bitmap is
800 much larger than its width.
801
802 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
803 compilation warning.
804
Werner Lemberg6d96d312007-01-12 10:30:19 +00008052007-01-12 Werner Lemberg <wl@gnu.org>
806
807 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
808 `automake' CVS module from sources.redhat.com.
809
Werner Lemberg17432b52007-01-12 09:28:44 +00008102007-01-11 Werner Lemberg <wl@gnu.org>
811
812 * src/type1/t1load.c (is_space): Removed.
813 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
814 (parse_charstrings): Use IS_PS_TOKEN.
815
816
817 * autogen.sh: Avoid bash specific syntax.
818
David Turner038ace22007-01-11 15:00:59 +00008192007-01-11 David Turner <david@freetype.org>
820
Werner Lemberg17432b52007-01-12 09:28:44 +0000821 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000822
Werner Lemberg17432b52007-01-12 09:28:44 +0000823 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000824
Werner Lemberg17432b52007-01-12 09:28:44 +0000825 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
826 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000827 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000828
Werner Lemberg17432b52007-01-12 09:28:44 +0000829 * autogen.sh: Small fix to get it working on Mac OS X properly:
830 The issue is that GNU libtool is called `glibtool' on this platform,
831 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000832
David Turner2628ea92007-01-10 13:15:56 +00008332007-01-10 David Turner <david@freetype.org>
834
Werner Lemberg17432b52007-01-12 09:28:44 +0000835 * all-sources: Tag all sources with VER-2-3-0-RC1 and
836 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000837
Werner Lemberg17432b52007-01-12 09:28:44 +0000838 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
839 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
840 version number to 2.3.0.
841
842 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
843 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000844
845 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000846 include/freetype/ftlcdfil.h: Update reference documentation with
847 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000848
Werner Lemberg17432b52007-01-12 09:28:44 +0000849 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
850 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000851
Werner Lembergbf02d392007-01-10 07:07:37 +00008522007-01-10 Derek Clegg <dclegg@apple.com>
853
854 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
855 values.
856
David Turnerf48b60e2007-01-08 15:15:32 +00008572007-01-08 David Turner <david@freetype.org>
858
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000859 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000860
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000861 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
862 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000863 corresponding to a given character pixel size.
864
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000865 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
866 `gasp' table, in order to avoid potential problems with later
867 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000868
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000869 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
870 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000871
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000872 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
873 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
874 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
875 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000876
Werner Lemberge6b6f372007-01-07 00:06:47 +00008772007-01-07 Werner Lemberg <wl@gnu.org>
878
Werner Lembergb8004d22007-01-07 09:13:38 +0000879 * src/cid/cidparse.c (cid_parser_new): Improve error message for
880 Type 11 fonts.
881 Scan for `/sfnts' token.
882
8832007-01-07 Werner Lemberg <wl@gnu.org>
884
885 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000886
Werner Lembergbe5f7972007-01-06 07:51:48 +00008872007-01-06 Werner Lemberg <wl@gnu.org>
888
889 * src/cff/cffload.c (cff_index_init): Remove unused variable.
890 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
891
David Turnera8cf42b2007-01-04 16:46:46 +00008922007-01-04 David Turner <david@freetype.org>
893
Werner Lembergf6294392007-01-06 07:47:45 +0000894 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
895 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000896
Werner Lembergf6294392007-01-06 07:47:45 +0000897
898 Do not allocate interpreter-specific tables in memory if we are not
899 going to load glyphs with the bytecode interpreter anyway.
900
901 * src/truetype/ttgload.c (tt_loader_init): Load execution context
902 only if glyph is hinted.
903 Updated.
904 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
905 and `cvs_ready'.
906 Add `tt_size_ready_bytecode' declaration.
907 * src/truetype/ttobjs.c (tt_size_done_bytecode,
908 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
909 (tt_size_init): Move most code into `tt_size_init_bytecode'.
910 (tt_size_done): Move most code into `tt_size_done_bytecode'.
911 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000912
David Turner91a34022007-01-05 14:47:08 +0000913
Werner Lembergf6294392007-01-06 07:47:45 +0000914 Don't extract the metrics table from the SFNT font file. Instead,
915 reparse it on each glyph load. The runtime difference is not
916 noticeable, and it can save a lot of heap memory when memory-mapped
917 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000918
Werner Lembergf6294392007-01-06 07:47:45 +0000919 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
920 `horz_metrics_offset' and `vert_metrics_ofset'.
921 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
922 Updated.
923
924
925 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
926
927
928 Do not load the CFF index offsets into memory, since this wastes a
929 *lot* of heap memory with large Asian CFF fonts. There is no
930 significant performance loss.
931
932 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
933 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
934 `data_size'.
935 (CFF_CharsetRec): Add field `num_glyphs'.
936
937 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
938 cff_charset_cid_to_gindex): New functions.
939 (cff_new_index): Renamed to...
940 (cff_index_init): This. Update all callers.
941 Updated -- some code has been moved to `cff_index_load_offsets'.
942 (cff_done_index): Renamed to...
943 (cff_index_done): This. Update all callers.
944 (cff_index_get_pointers, cff_index_access_element): Updated to use
945 stream offsets.
946 (cff_charset_compute_cids): Set `num_glyphs' field.
947 (cff_encoding_load): Updated.
948
949 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000950
9512007-01-04 David Turner <david@freetype.org>
952
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000953 * docs/INSTALL.UNIX: Simplify some parts, add reference to
954 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000955
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000956 * README.CVS: Add common problem description and solution
957 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000958
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000959 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000960
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000961 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000962
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000963 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000964
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000965 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
966 (TWorker): This.
967 Remove `count_table' and `memory'.
968 Make `grays' a pointer.
969 (TRaster): New structure.
970 (count_table): New static array.
971 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
972 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
973 ft_black_set_mode, ft_black_render): Updated.
974 (ft_black_init): Don't initialize `count_table'.
975 (ft_black_reset): Use the render pool. This saves about 6KB of
976 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000977
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000978 * src/smooth/ftgrays.c (TRaster): Replaced with...
979 (TWorker): This.
980 Remove `memory'.
981 (TRaster): New structure.
982
983 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
984 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
985 gray_render_span, gray_raster_render): Updated.
986 (gray_raster_reset): Use the render pool. This saves about 6KB of
987 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000988
David Turner8a6c44e2007-01-04 17:03:11 +0000989 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
990 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000991 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
992 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
993 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000994
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000995 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
996 Remove a typo that results in no hinting and a memory leak with some
997 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000998
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000999 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001000 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001001 CFF_Faces in it. We need to close all faces before destroying the
1002 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001003
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000010042007-01-02 Werner Lemberg <wl@gnu.org>
1005
1006 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1007 Remove compiler warning.
1008
David Turner9207e002007-01-02 16:58:13 +000010092007-01-02 David Turner <david@freetype.org>
1010
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001011 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001012
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000010132006-12-31 Masatake YAMATO <jet@gyve.org>
1014
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001015 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1016 function.
1017 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001018 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001019 `gxv_kern_subtable_fmt0_pairs_validate'.
1020
David Turner115b4422006-12-22 11:37:05 +000010212006-12-22 David Turner <david@freetype.org>
1022
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001023 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1024 warnings.
David Turner115b4422006-12-22 11:37:05 +00001025
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001026 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1027 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001028
Werner Lemberg4755bf72006-12-16 08:58:44 +000010292006-12-16 Anders Kaseorg <anders@kaseorg.com>
1030
1031 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1032 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1033
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010342006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1035
Werner Lemberg9b774e22007-01-16 06:11:27 +00001036 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001037 sync with the modification by Jens Claudius on 2006-08-22; cf.
1038 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 +00001039
10402006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1041
1042 * src/base/ftmac.c: Specialized for Mac OS X only.
1043 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1044 * builds/unix/configure.raw: Ditto. When explicit switches for
1045 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1046 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1047
10482006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1049
1050 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1051 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1052 instead of src/base/ftmac.c
1053 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1054 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1055 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1056 that cannot be built at present.
1057
10582006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1059
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001060 * src/base/ftobjs.c: Improvement of resource fork handler for
1061 POSIX, cf.
1062 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001063 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1064 format or .dfont, to simulate the face index number counted by ftmac.c.
1065 (IsMacResource): Return the number of scalable faces correctly.
1066
Werner Lembergec5b4502006-12-10 07:51:38 +000010672006-12-10 Werner Lemberg <wl@gnu.org>
1068
1069 * builds/toplevel.mk (version): Protect against `distclean' target.
1070
Werner Lembergb26b3142006-12-09 20:01:43 +000010712006-12-09 Werner Lemberg <wl@gnu.org>
1072
1073 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1074 or `type'.
1075
1076 * builds/freetype.mk (version): Extracted from freetype.h, using
1077 GNU make's built-in string functions.
1078 (refdoc): Use $(version) instead of static version number.
1079
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010802006-12-08 Werner Lemberg <wl@gnu.org>
1081
1082 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1083
Werner Lemberg15c29502006-12-09 07:29:54 +000010842006-12-08 Vladimir Volovich <vvv@vsu.ru>
1085
1086 * src/tools/apinames (State): Remove final comma in structure -- xlc
1087 v5 under AIX 4.3 doesn't like this.
1088
David Turnerdbf3b432006-12-07 21:18:09 +000010892006-12-07 David Turner <david@freetype.org>
1090
Werner Lemberg256a3512006-12-08 06:49:33 +00001091 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1092 to the spacing of auto-fitted glyphs. This only impacts rare
1093 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001094
Werner Lemberg11171312006-12-03 09:43:40 +000010952006-12-03 Werner Lemberg <wl@gnu.org>
1096
1097 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1098
Werner Lemberg960ba592006-12-01 08:20:47 +000010992006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001100
Werner Lemberg960ba592006-12-01 08:20:47 +00001101 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1102 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1103 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001104
David Turner80658e52006-11-28 08:09:20 +00001105
Werner Lemberg960ba592006-12-01 08:20:47 +00001106 * include/freetype/ftxf86.h: Fix and extend comment so that it
1107 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001108
Werner Lemberg960ba592006-12-01 08:20:47 +00001109 * include/freetype/ftchapters.h: Add `font_format' section.
1110
1111
1112 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1113 to TOC in index page.
1114
11152006-11-28 David Turner <david@freetype.org>
1116
1117 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1118 trying to render into a zero-width/height bitmap, not an error code.
1119
1120 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1121
1122 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1123 ones instead.
1124
1125 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1126 variable.
David Turner80658e52006-11-28 08:09:20 +00001127
Werner Lemberg8636c292006-11-26 22:28:13 +000011282006-11-26 Pierre Hanser <hanser@club-internet.fr>
1129
1130 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1131
Werner Lemberg960ba592006-12-01 08:20:47 +000011322006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001133
Werner Lemberg960ba592006-12-01 08:20:47 +00001134 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1135 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1136 Add stubs to link the `ftgrid' test program when debugging is
1137 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001138
Werner Lemberg960ba592006-12-01 08:20:47 +000011392006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001140
1141 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001142 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1143
1144 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1145 Emit more sensible information.
1146
1147 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1148
1149 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1150 rounding of blue values.
1151 (af_latin_hints_compute_segments): Hint segment heights.
1152 (af_latin_hints_link_segments): Reduce `len_score' value.
1153 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1154 value and use `height' member for comparisons.
1155 (af_latin_hint_edges): Extend logging message.
1156 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001157
Werner Lemberg91959bf2006-11-22 10:36:55 +000011582006-11-22 Werner Lemberg <wl@gnu.org>
1159
1160 Fix Savannah bug #15553.
1161
1162 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1163 program after a change from mono to grayscaling (and vice versa).
1164 Use correct constant for comparison to get `exec->grayscale'.
1165
Werner Lemberg913a3652006-11-19 09:19:17 +000011662006-11-18 Werner Lemberg <wl@gnu.org>
1167
1168 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001169 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001170 This patch fixes Savannah bug #18301.
1171
1172 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1173 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1174 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1175 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1176 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1177 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1178 (FNT_Load_Glyph): Check validity of `glyph_index'.
1179
David Turner7bab6ae2006-11-13 11:25:06 +000011802006-11-13 David Turner <david@freetype.org>
1181
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001182 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1183 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001184
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001185 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1186 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1187 when building the library to change the default LCD filter to be
1188 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001189
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001190 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001191
David Turner8765c712006-11-10 16:49:42 +000011922006-11-10 David Turner <david@freetype.org>
1193
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001194 * src/smooth/ftsmooth.c: API change for the LCD
1195 filter. The FT_LcdFilter value is an enumeration describing which
1196 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1197 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1198 algorithm which produces strong color fringes for everything
1199 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001200
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001201 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1202 second parameter to an enum type.
1203
1204 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1205 (_ft_lcd_filter): Rename to...
1206 (_ft_lcd_filter_fir): This.
1207 Update parameters.
1208 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1209 (FT_Library_Set_LcdFilter): Update parameters.
1210 Handle new filter modes.
1211
1212 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1213 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1214 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1215 callback and update other fields.
1216
1217 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1218 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1219 Other minor improvements.
1220
1221 * src/autofit/aflatin.c: Various tiny improvements that drastically
1222 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1223 (af_latin_hints_compute_edges): Fix typo.
1224 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001225
David Turner4e9cc3c2006-11-09 16:31:52 +000012262006-11-09 David Turner <david@freetype.org>
1227
Werner Lemberg49c77a82006-11-09 21:51:57 +00001228 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1229 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001230
Werner Lemberg5e430892006-11-07 09:35:03 +000012312006-11-07 Zhe Su <james.su@gmail.com>
1232
1233 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1234 also.
1235
Werner Lemberg111b5ae2006-11-03 09:40:12 +000012362006-11-03 Werner Lemberg <wl@gnu.org>
1237
1238 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1239
David Turner40604742006-11-02 16:37:35 +000012402006-11-02 David Turner <david@freetype.org>
1241
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001242 Add a few tweaks to better handle serif fonts.
1243 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001244
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001245 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1246 segments that are less than 1.5 pixels high. This gets rid of
1247 *many* corner cases with serifs.
1248 (af_latin_align_linked_edge): Add logging message.
1249 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1250 Add logging messages.
1251 Handle AF_EDGE_FLAG flag specially.
1252
1253 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1254 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1255
1256 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1257 Update external declarations.
1258 (af_corner_orientation, af_corner_is_flat): Replaced by...
1259
1260 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1261 ft_corner_is_flat): These declarations.
1262
1263 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1264 Comment out. Replaced by...
1265
1266 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1267 These functions. Update all callers.
1268 (FT_Add64) [!FT_LONG64]: Simplify.
1269
1270 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1271 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1272 production of garbage by missing lots of segments.
1273
1274 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1275
1276 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1277 [AF_DEBUG]: Set _af_debug_hints.
1278
1279
1280 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1281 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1282 and ft_corner_orientation.
1283
1284
1285 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001286
Werner Lemberge88c5262006-10-24 05:46:26 +000012872006-10-24 Werner Lemberg <wl@gnu.org>
1288
1289 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1290
1291 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1292 as argument.
1293
David Turnera1861392006-10-23 16:00:59 +000012942006-10-23 Zhe Su <zsu@novell.com>
1295
Werner Lemberg715e96e2006-10-24 05:28:45 +00001296 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1297 better deal with broken Asian fonts with strange glyphs, having
1298 self-intersections and other peculiarities. The used algorithm is
1299 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001300
David Turnere140f142006-10-23 08:56:57 +000013012006-10-23 David Turner <david@freetype.org>
1302
Werner Lemberg715e96e2006-10-24 05:28:45 +00001303 Speed up the CFF font loader. With some large CFF fonts,
1304 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001305
Werner Lemberg715e96e2006-10-24 05:28:45 +00001306 * src/cff/cffload.c (cff_get_offset): Removed.
1307 (cff_new_index): Inline functionality of `cff_get_offset'.
1308 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1309 (cff_charset_done): Call `cff_charset_free_cids'.
1310 (cff_charset_load): Call `cff_charset_compute_cids'.
1311 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1312
1313 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1314 with FT_NEXT_XXX.
1315
1316
1317 Speed up the Postscript hinter, with more than 100% speed increase
1318 on my machine.
1319
1320 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1321 psh_corner_orientation): New functions.
1322 (psh_glyph_compute_inflections): Merge loops for efficiency.
1323 Use `psh_corner_orientation'.
1324 (psh_glyph_init): Use `psh_corner_is_flat'.
1325 (psh_hint_table_find_strong_point): Renamed to...
1326 (psh_hint_table_find_strong_points): This.
1327 Rewrite, adding argument to handle all points at once.
1328 Update all callers.
1329 (PSH_MAX_STRONG_INTERNAL): New macro.
1330 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001331
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013322006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1333
1334 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001335 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001336
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000013372006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1338
1339 * docs/INSTALL.CROSS: New document file for cross-building.
1340
1341 * builds/unix/configure.raw: Preliminary cross-building support.
1342 Find native C compiler and pass it by CC_BUILD, and
1343 find suffix for native executable and pass it by EXEEXT_BUILD.
1344 Also suffix for target executable is passed by EXEEXT.
1345
Werner Lembergb9e6d692006-10-15 08:58:40 +00001346 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1347 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001348 CC_BUILD and EXEEXT_BUILD.
1349
Werner Lembergb9e6d692006-10-15 08:58:40 +00001350 * builds/exports.mk (APINAMES_EXE): Change the extension for
1351 apinames from the suffix for target (E) to that for building host
1352 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001353
Werner Lemberg82a07e92006-10-12 06:20:44 +000013542006-10-12 Werner Lemberg <wl@gnu.org>
1355
1356 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1357 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1358 which reference those files.
1359
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000013602006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1361
Werner Lembergb9e6d692006-10-15 08:58:40 +00001362 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1363 embedded in freetype2.pc and freetype-config. Use it to record
1364 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001365
1366 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1367
1368 * builds/unix/freetype-config.in: Ditto.
1369
Werner Lemberg28e17d92006-10-11 17:27:47 +000013702006-10-11 Werner Lemberg <wl@gnu.org>
1371
1372 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1373 development.
1374
Jens Claudius336d2292006-10-03 08:53:37 +000013752006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1376
1377 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1378 argument to ft_setjmp.
1379
1380 * include/freetype/internal/ftvalid.h: Add comment that
1381 ft_validator_run must not be used.
1382
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013832006-10-01 Werner Lemberg <wl@gnu.org>
1384
1385 * src/base/ftbase.c: Undo change from 2006-09-30.
1386
1387 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1388
13892006-09-30 David Turner <david@freetype.org>
1390
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001391 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1392 s/unpatented_hinting/ignore_unpatented_hinter/.
1393 Update all callers.
1394
1395 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1396 auto-hinting shall be used or not.
1397
1398 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001399
Werner Lemberg2863cfa2006-10-01 17:04:00 +000014002006-09-30 Werner Lemberg <wl@gnu.org>
1401
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001402 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1403 in use).
1404
1405 * src/base/ftbase.c: Include `ftlcdfil.c'.
1406
Werner Lemberg9b15ea32006-09-29 18:22:11 +000014072006-09-29 Werner Lemberg <wl@gnu.org>
1408
1409 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1410 overlapping segments. Bug reported by Stefan Koch.
1411
David Turnerad830712006-09-27 16:20:59 +000014122006-09-28 David Turner <david@freetype.org>
1413
Werner Lemberg2c002e12006-09-29 21:31:53 +00001414 Fix a bug in the automatic unpatented hinting support which prevents
1415 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001416
Werner Lemberg2c002e12006-09-29 21:31:53 +00001417 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1418 s/force_autohint/unpatented_hinting/. Update all callers.
1419
1420 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1421
1422 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001423
David Turner8a317cf2006-09-27 07:52:48 +000014242006-09-27 David Turner <david@freetype.org>
1425
Werner Lemberg2c002e12006-09-29 21:31:53 +00001426 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001427
David Turner8a317cf2006-09-27 07:52:48 +00001428
David Turnere140f142006-10-23 08:56:57 +00001429 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001430 In a default build, the function `FT_Library_SetLcdFilter' returns
1431 `FT_Err_Unimplemented_Feature'; you need to #define
1432 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1433 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001434
Werner Lemberg2c002e12006-09-29 21:31:53 +00001435 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001436
Werner Lemberg2c002e12006-09-29 21:31:53 +00001437 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1438 typedef.
1439 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1440 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001441
Werner Lemberg2c002e12006-09-29 21:31:53 +00001442 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1443 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001444
Werner Lemberg2c002e12006-09-29 21:31:53 +00001445 Handle subpixel rendering.
1446 Simplify function.
1447 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1448 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1449
1450 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1451 pointing to <freetype/ftlcdfil.h>.
1452
1453 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1454 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1455
1456 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001457
Werner Lemberge20df4a2006-09-27 06:29:21 +000014582006-09-26 David Bustin
1459
1460 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1461 correctly. Reported as Savannah bug #17843.
1462
David Turner6f8c6222006-09-26 15:42:44 +000014632006-09-26 David Turner <david@freetype.org>
1464
Werner Lemberg110246c2006-09-26 21:55:44 +00001465 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1466 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1467 horizontal and vertical hinting for the purpose of debugging the
1468 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001469
Werner Lemberg110246c2006-09-26 21:55:44 +00001470 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1471 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001472
Werner Lemberg110246c2006-09-26 21:55:44 +00001473 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1474
1475 * include/freetype/config/ftoption.h, devel/ftoption.h
1476 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1477 we want to compile LCD-optimized rendering code (à la ClearType) or
1478 not. The macro *must* be disabled in default builds of the library
1479 for patent reasons.
1480
1481 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1482 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1483 isn't defined at compile time. This only changes the content of the
1484 rendered glyph to match the one of normal gray-level rendering,
1485 hence clients should not need to be modified.
1486
1487 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001488
Werner Lemberg745ff2c2006-09-19 05:48:02 +000014892006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1490
1491 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1492 LWFN fails and both are available.
1493
David Turnerf3050052006-09-11 12:00:32 +000014942006-09-11 David Turner <david@freetype.org>
1495
Werner Lembergf9644552006-09-12 13:48:10 +00001496 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1497 report their English names through an Apple Roman
1498 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001499
Werner Lembergf9644552006-09-12 13:48:10 +00001500 If the font uses another name entry with language_id == English, it
1501 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001502
Werner Lembergf9644552006-09-12 13:48:10 +00001503 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1504 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001505
Werner Lemberg36d2eab2006-09-05 19:24:34 +000015062006-09-05 Werner Lemberg <wl@gnu.org>
1507
1508 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001509 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001510 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1511 `HAN NOM B.ttf').
1512
1513 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1514
David Turner772e55d2006-09-05 09:45:15 +000015152006-09-05 David Turner <david@freetype.org>
1516
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001517 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001518
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001519 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1520 (TRaster): Remove `count_ex' and `count_ey'.
1521 (gray_find_cell): Remove 2nd and 3rd argument.
1522 (gray_alloc_cell): Merged with `gray_find_cell'.
1523 (gray_record_cell): Simplify.
1524 (gray_set_cell): Rewrite.
1525 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1526 (gray_render_span): Don't use FT_MEM_SET for small values.
1527 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1528 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1529 bitmap scanline.
1530 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001531
David Turneraa557a92006-09-04 16:42:44 +000015322006-09-04 David Turner <david@freetype.org>
1533
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001534 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1535 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001536
Werner Lemberg2d8629b2006-09-03 06:18:45 +000015372006-09-03 Werner Lemberg <wl@gnu.org>
1538
1539 * devel/ftoption.h: Synchronize with
1540 include/freetype/config/ftoption.h.
1541
1542 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1543 variable declaration.
1544 (gray_convert_glyph): Fix compiler warnings.
1545
David Turner6d79f212006-09-01 14:09:35 +000015462006-09-01 David Turner <david@freetype.org>
1547
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001548 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1549 to recognize a few fonts that require the automatic unpatented
1550 loader.
David Turnerbd502952006-09-01 19:05:24 +00001551
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001552 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1553 rasterizer. The speed improvement is between 15% and 25%, depending
1554 on the font data.
1555
1556 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1557 (TCell): Redefine.
1558 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1559 (gray_init_cells): Updated.
1560 (gray_find_cell, gray_alloc_cell): New functions.
1561 (gray_record_cell): Rewritten to use `gray_find_cell' and
1562 `gray_alloc_cell'.
1563 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1564 QSORT_THRESHOLD):
1565 Removed.
1566 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1567 gray_dump_cells): Removed.
1568 (gray_sweep): Rewritten.
1569 (gray_convert_glyph): Rewrite code which used one of the sorting
1570 functions.
1571 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001572
Werner Lembergd898aed2006-08-29 09:50:34 +000015732006-08-29 Dr. Werner Fink <werner@suse.de>
1574
1575 * configure: Make it possible to handle configure options which
1576 have strings containing spaces.
1577
15782006-08-27 David Turner <david@freetype.org>
1579
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001580 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1581 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1582 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1583
1584 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1585 src/truetype/truetype.c, src/truetype/ttdriver.c,
1586 src/truetype/ttgload.c, src/truetype/ttgload.h,
1587 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1588 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1589 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1590
1591 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1592 member `force_autohint'.
1593
1594 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1595
1596 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1597 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001598
Jens Claudiusa787f452006-08-27 11:26:18 +000015992006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1600
1601 Fix miscellaneous compiler warnings.
1602
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001603 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1604 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001605
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001606 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1607 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1608 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001609
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001610 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1611 volatileness of argument to ft_longjmp. Spotted by Werner
1612 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001613
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001614 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1615 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001616
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001617 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1618 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001619
Werner Lembergc4c35b72006-08-27 08:03:46 +000016202006-08-27 Werner Lemberg <wl@gnu.org>
1621
1622 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1623 Reported by Jens.
1624
Jens Claudius088e44e2006-08-22 14:24:30 +000016252006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001626
Jens Claudius088e44e2006-08-22 14:24:30 +00001627 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001628 about addresses of volatile objects passed as function arguments as
1629 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001630
Werner Lembergc4c35b72006-08-27 08:03:46 +00001631 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1632 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001633
1634 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1635 argument `table' a pointer to a volatile object.
1636
1637 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1638 argument `table' a pointer to a volatile object.
1639
Jens Claudius2652bd52006-08-18 17:20:37 +000016402006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1641
1642 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1643 variable `_sfnt' as volatile since it must keep its value across
1644 a call to ft_setjmp.
1645 (gxv_validate): Same for local variables `memory' and `valid'.
1646 (classic_kern_validate): Same for local variables `memory',
1647 `ckern', and `valid'.
1648
1649 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1650 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1651 `jstf', and 'valid'.
1652
1653 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1654 local variable `cmap'.
1655
David Turner9fbfc6a2006-08-16 09:11:31 +000016562006-08-16 David Turner <david@freetype.org>
1657
Werner Lemberg12342992006-08-19 11:18:09 +00001658 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1659 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001660
Werner Lemberg12342992006-08-19 11:18:09 +00001661 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1662 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001663
David Turner33f5f242006-08-16 16:50:55 +00001664
Werner Lemberg12342992006-08-19 11:18:09 +00001665 Improvements to native TrueType hinting. This is a first try,
1666 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1667
1668 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1669 `extra_points2'.
1670
1671 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1672 `orus'.
1673
1674 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1675 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1676 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1677 handle `extra_points2'.
1678
1679 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1680 Remove compiler warning.
1681 (cur_to_arg): Remove macro.
1682 (TT_Hint_Glyph): Updated.
1683 (TT_Process_Simple_Glyph): Handle `orus'.
1684
1685 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1686 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1687 (LOC_Ins_IUP): Renamed to...
1688 (IUP_WorkerRec): This.
1689 Add `orus' member.
1690 (Shift): Renamed to...
1691 (_iup_worker_shift): This.
1692 Updated.
1693 (Interp): Renamed to...
1694 (_iup_worker_interpolate): This.
1695 Updated to handle `orus'.
1696 (Ins_IUP): Updated.
1697
1698 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1699 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001700
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000017012006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1702
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001703 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001704 build ftvalid in ft2demos. This has been inadvertedly changed
1705 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001706
17072006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1708
Werner Lemberg12342992006-08-19 11:18:09 +00001709 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1710 Jens:
1711 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001712
Werner Lemberg12342992006-08-19 11:18:09 +00001713 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1714 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001715
1716 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1717
Jens Claudius9950adc2006-08-13 12:14:36 +000017182006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1719
Werner Lemberg12342992006-08-19 11:18:09 +00001720 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1721 T1_TOKEN_TYPE_KEY.
1722 (T1_FieldRec): Add `dict'.
1723 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1724 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1725 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001726
Werner Lemberg12342992006-08-19 11:18:09 +00001727 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1728 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001729
1730 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1731
1732 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001733 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1734 not T1_TOKEN_TYPE_ANY.
1735 (ps_parser_load_field): Make sure a token that should be a string or
1736 name is really a string or name.
1737 Avoid memory leak if a keyword has been already encountered and its
1738 value is overwritten.
1739 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1740 T1_FIELD_XXX.
1741 (parse_dict): Ignore keywords that occur in the wrong dictionary
1742 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001743
Werner Lemberg12342992006-08-19 11:18:09 +00001744 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1745 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001746
Werner Lemberg12342992006-08-19 11:18:09 +00001747 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1748 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001749
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000017502006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1751
1752 Move creation of field `buildchar' of T1_DecoderRec out of
1753 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1754 of it.
1755
1756 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1757 and `T1_Compute_Max_Advance'.
1758
1759 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1760 Remove field `face', add `len_buildchar'.
1761
1762 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1763 field `buildchar'.
1764
1765 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1766 finisher for T1_Decoder.
1767 (cid_slot_load_glyph): Do not ignore failure when initializing the
1768 T1_Decoder.
1769
1770 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1771 Updated.
1772 (t1_decoder_init): Remove initialization of fields `buildchar' and
1773 `len_buildchar'.
1774 (t1_decoder_done): Remove deallocation of field `buildchar'.
1775
1776 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1777 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1778 T1_Decoder.
1779 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1780 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1781 case of error.
1782
1783 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1784 `buildchar' of T1_FaceRec.
1785
1786 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1787 `buildchar' of T1_FaceRec.
1788
Werner Lemberg1a380e02006-07-14 18:28:08 +000017892006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1790
1791 * freetype2/include/freetype/internal/psaux.h: New macros
1792 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1793 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1794 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1795 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1796 (T1_DecoderRec): New fields `buildchar' and `face'.
1797 (IS_PS_TOKEN): New macro.
1798
1799 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1800 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1801
1802 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1803 `default_design_vector' and `num_default_design_vector'.
1804
1805 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1806 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1807 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1808
1809 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1810 `token' argument to be NULL if we want only to count the number of
1811 tokens.
1812 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1813 want to skip the array.
1814 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1815 want to skip the array.
1816
1817 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1818 support for (partially commented out) othersubrs 19-25, 27, and 28.
1819 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1820 (t1_decoder_done): Release new field `buildchar'.
1821
1822 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1823 functions.
1824 (t1_keywords): Register them.
1825 (t1_allocate_blend): Updated.
1826 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1827 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1828 (parse_dict): Remove `keyword_flags' argument.
1829 Use new macro IS_PS_TOKEN.
1830 Changed function so that later PostScript definitions override
1831 earlier ones.
1832 (t1_init_loader): Initialize new field `keywords_encountered'.
1833 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1834 `len_buildchar'.
1835 Remove `keywords_flags'.
1836
1837 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1838 `keywords_encountered'.
1839 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1840
1841 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1842 New entries for parsing /NDV, /CDV, and /DesignVector.
1843
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000018442006-07-07 Werner Lemberg <wl@gnu.org>
1845
1846 Add many checks to protect against malformed PCF files.
1847
1848 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1849 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1850
1851 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1852 data and check that tables don't overlap (using a simple
1853 bubblesort).
1854 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1855 New macros which give the size of data structures in the data
1856 stream.
1857 (pcf_get_properties): Use rough estimates to get array size limits.
1858 Assign `face->nprops' and `face->properties' earlier so that a call
1859 to PCF_Face_Done can do the clean-up in case of error.
1860 Protect against invalid string offsets.
1861 (pcf_get_metrics): Clean up code.
1862 Adjust tracing message levels.
1863 Use rough estimate to get array size limit.
1864 (pcf_get_bitmaps): Clean up code.
1865 Adjust tracing message levels.
1866 Use rough estimates to get offset limits.
1867 (pcf_get_encodings): Adjust tracing message level.
1868 (pcf_get_accel): Clean up code.
1869
Werner Lemberg8eb05252006-06-27 06:20:01 +000018702006-06-26 Werner Lemberg <wl@gnu.org>
1871
1872 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1873 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1874
Werner Lemberg24703f82006-06-26 19:12:51 +000018752006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1876
1877 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1878 (t1_decoder_parse_charstrings): Operator with
1879 opcode 15 pops its two arguments.
1880 Handle the case where the pops of an othersubr may be part of a
1881 subroutine.
1882 Handle unknown othersubrs gracefully: count their operands and let
1883 the following pop operators push the operands as the results onto
1884 the Type1 stack.
1885 Improve handling of setcurrentpoint opcode.
1886
Werner Lembergc011f4c2006-06-26 09:40:00 +000018872006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1888
1889 The Type 1 parser now skips over top-level procedures as required
1890 for a `Simplified Parser'. This makes the parser more robust as it
1891 doesn't poke around in PostScript code. Additionally, it makes the
1892 FontDirectory hackery in src/type1/t1load.c unnecessary.
1893
1894 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1895 (skip_literal_string): Add FT_Error as return value.
1896 Handle escapes better.
1897 (skip_string): Add FT_Error as return value.
1898 Don't set `parser->error' but return error code directly.
1899 (skip_procedure): New function.
1900 (ps_parser_skip_PS_token): Handle procedures.
1901 Update code.
1902 (ps_parser_to_token): Update code.
1903 (ps_parser_load_field_table): Handle bbox entries also.
1904
1905 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1906 Add commented-out code for synthetic fonts.
1907
Werner Lemberga2da05c2006-06-25 06:27:27 +000019082006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1909
1910 Fix two hinting bugs as reported in
1911 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1912
1913 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1914 `first_point' member.
1915
1916 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1917 `first_point'.
1918 (TT_Process_Composite_Glyph): Always untouch points.
1919
1920 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1921 `first_point' and `last_point' in case of composite glyphs.
1922 (Ins_IUP): Fix computation of `end_point'.
1923
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000019242006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1925
Werner Lembergef3d2c22006-06-25 06:07:14 +00001926 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1927 Mac. The original patch was written by David Sachitano and Lawrence
1928 Coopet, and modified by Sean McBride for MPW compatibility. Only
1929 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001930
Werner Lembergef3d2c22006-06-25 06:07:14 +00001931 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1932 Mac OS X platforms.
1933 (OS_INLINE): Undefine before definition.
1934 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1935 FontAssociation table in FOND resource.
1936 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1937 and fontSize at each entry of FontAssociation table in FOND
1938 resource.
1939 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1940 ffStylOff of FamilyRecord header of FOND resource, the header,
1941 fontSize, fontID at each entry of FontAssociation table, and
1942 StyleMapping table.
1943 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001944
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000019452006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1946
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001947 Public API of TrueTypeGX, OpenType, and classic kern table validator
1948 should return `FT_Err_Unimplemented_Feature' if validation service
1949 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001950 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001951 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1952
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001953 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1954 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1955 unavailable.
1956 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1957 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001958
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001959 * src/base/ftotval.c (FT_OpenType_Validate): Return
1960 FT_Err_Unimplemented_Feature if OpenType validation service is
1961 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001962
Werner Lembergb10e45a2006-06-08 07:32:56 +000019632006-06-08 Werner Lemberg <wl@gnu.org>
1964
1965 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1966 errors.
1967
David Turner5f1f7502006-06-07 05:11:50 +000019682006-06-07 David Turner <david@freetype.org>
1969
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001970 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1971 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1972 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001973
David Turner457b4a82006-06-06 08:14:14 +000019742006-06-06 David Turner <david@freetype.org>
1975
Werner Lemberg4836f952006-06-06 12:54:08 +00001976 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001977
Werner Lemberg4836f952006-06-06 12:54:08 +00001978 We change `ps_unicodes_init' so that it also takes a
1979 `free_glyph_name' callback to release the glyph names returned by
1980 `get_glyph_name'
1981
1982 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1983 Renamed to ...
1984 (PS_GetGlyphNameFunc): This.
1985 (PS_FreeGlyphNameFunc): New typedef.
1986 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1987
1988 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1989 argument.
1990 (cff_sid_free_glyph_name): New function.
1991 (cff_cmap_unicode_init): Updated.
1992
1993 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1994
1995 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1996 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001997
1998
David Turner09717352006-06-04 14:33:08 +000019992006-06-04 David Turner <david@freetype.org>
2000
Werner Lembergd724f202006-06-04 15:17:41 +00002001 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2002 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002003 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002004
Werner Lembergd724f202006-06-04 15:17:41 +00002005 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2006 of `face->num_glyphs' which missed the last glyph, due to
2007 the offset-by-1 computation, since the PFR format doesn't
2008 guarantee that glyph index 0 corresponds to the `missing
2009 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002010
Werner Lemberg33779662006-05-26 06:30:05 +000020112006-05-25 Werner Lemberg <wl@gnu.org>
2012
2013 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2014 `-no-undefined'. Reported by Christian Biesinger.
2015
Werner Lemberg24773d62006-05-20 08:53:13 +000020162006-05-19 Brian Weed <bw@imaginengine.com>
2017
2018 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2019 have debug information, and debug libraries use `C7 compatible'
2020 debug info.
2021
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000020222006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2023
Werner Lemberga6523a62006-05-20 08:47:01 +00002024 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002025 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002026
Werner Lemberga6523a62006-05-20 08:47:01 +00002027 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2028 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002029
2030 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002031 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002032
20332006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2034
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002035 * build/unix/configure.raw: Add a fallback to disable Carbon
2036 dependency, if configured with no options on Mac OS X.
2037
20382006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2039
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002040 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002041 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002042 the second part of Savannah bug #16590.
2043
Werner Lemberg545c4e52006-05-17 22:55:04 +000020442006-05-18 Werner Lemberg <wl@gnu.org>
2045
2046 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2047 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2048
David Turnerdc3ff312006-05-17 12:59:35 +000020492006-05-17 David Turner <david@freetype.org>
2050
Werner Lemberg545c4e52006-05-17 22:55:04 +00002051 This is a major patch used to drastically improve the performance of
2052 loading glyphs. This both speeds up loading the glyph vectors
2053 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002054
Werner Lemberg545c4e52006-05-17 22:55:04 +00002055 We now use inline assembler code with GCC to implement `FT_MulFix',
2056 which is probably the most important function related to the
2057 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002058
Werner Lemberg545c4e52006-05-17 22:55:04 +00002059 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002060
2061
Werner Lemberg545c4e52006-05-17 22:55:04 +00002062 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2063 `cursor' and `limit'.
2064
2065 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2066 New functions.
2067 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2068 [TEST]: Remove.
2069
2070 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2071 code.
2072
2073 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2074 `FT_ZERO'
2075 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2076 (af_glyph_hints_reload: Rewrite recognition of weak points.
2077
2078 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2079 constant values out of the loops.
2080
2081 * src/autofit/aftypes.h: Updated.
2082
2083 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2084
2085 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2086 product to get orientation.
2087
2088 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2089 (FT_Stream_OpenGzip): Use it to handle small files directly in
2090 memory.
2091
2092 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2093 Improve performance.
2094
2095 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2096 `limit'.
2097
2098 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2099 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2100 exceedingly large values of number of contours. Speed up by
2101 reducing the number of loops.
2102
2103 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2104
2105
2106 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2107 used to detect rogue clients from 4 to 16. This is to prevent some
2108 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2109 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002110
Werner Lembergde2d90a2006-05-17 08:54:30 +000021112007-05-17 Werner Lemberg <wl@gnu.org>
2112
2113 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002114 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002115
21162006-05-16 Werner Lemberg <wl@gnu.org>
2117
2118 * docs/PROBLEMS: Updated icl issues.
2119
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002120----------------------------------------------------------------------------
2121
Werner Lemberg42b63b22007-01-21 21:01:33 +00002122Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002123David Turner, Robert Wilhelm, and Werner Lemberg.
2124
2125This file is part of the FreeType project, and may only be used, modified,
2126and distributed under the terms of the FreeType project license,
2127LICENSE.TXT. By continuing to use, modify, or distribute this file you
2128indicate that you have read the license and understand and accept it
2129fully.
2130
2131
2132Local Variables:
2133version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002134coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002135End: