blob: f0c3119909e91c0f3d0adcd1f996d098eb00a3fb [file] [log] [blame]
Werner Lembergce280a22007-06-03 05:58:30 +000012007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
2
3 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
4
Werner Lemberg5b591e42007-06-01 22:16:43 +000052007-06-02 Werner Lemberg <wl@gnu.org>
6
7 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
8 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
9
10 * src/bdf/bdflib.c (bdf_load_font): Use them.
11
12 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
13
Werner Lembergb9933f42007-06-01 21:27:12 +0000142007-06-01 Werner Lemberg <wl@gnu.org>
15
16 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
17 (FTC_CMapCache_Lookup): Remove unused code.
18
Werner Lembergc793d902007-06-01 20:51:11 +0000192007-06-01 Sean McBride <sean@rogue-research.com>
20
21 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
22 unused.
23
Werner Lembergbebc7b12007-06-01 06:32:30 +0000242007-06-01 Werner Lemberg <wl@gnu.org>
25
26 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
27 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +000028 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +000029
Werner Lembergcb37b3b2007-06-01 06:49:03 +000030 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
31 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
32
Werner Lembergba03af62007-05-30 13:57:02 +0000332007-05-30 Werner Lemberg <wl@gnu.org>
34
35 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
36 against too small binary data strings.
37
38 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
39
David Turnerf0cd69c2007-05-28 15:42:09 +0000402007-05-28 David Turner <david@freetype.org>
41
Werner Lemberg99e0c182007-05-29 07:00:23 +000042 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
43 transformation. This significantly reduces the loading time of CFF
44 glyphs.
David Turner552a9562007-05-28 15:45:35 +000045
Werner Lemberg99e0c182007-05-29 07:00:23 +000046 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +000047
Werner Lemberg99e0c182007-05-29 07:00:23 +000048 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
49 hinting script to CJK, since it works well with more scripts than
50 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
51 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +000052
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000532007-05-25 Werner Lemberg <wl@gnu.org>
54
55 * docs/CHANGES: Updated.
56
Werner Lemberg6ff2ff52007-05-24 19:39:14 +0000572007-05-24 Werner Lemberg <wl@gnu.org>
58
59 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
60 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
61
622007-05-24 Graham Asher <graham.asher@btinternet.com>
63
64 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
65 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
66
David Turner0d0365e2007-05-22 09:53:44 +0000672007-05-22 David Turner <david@freetype.org>
68
Werner Lemberg1c8980e2007-05-25 07:11:12 +000069 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
70 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +000071
Werner Lemberg1c8980e2007-05-25 07:11:12 +000072
73 Avoid heap blowup with very large .Z font files. This fixes
74 Savannah bug #19910.
75
76 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
77 `in_limit', `pad', `pad_bits', and `in_buff' members.
78 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
79 `buf_total' members.
80
81 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
82 only one argument.
83 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +000084
852007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +000086
87 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
88 (ps_dimension_set_mask_bits): Remove `const'.
89
David Turner0d0365e2007-05-22 09:53:44 +0000902007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000091
92 * src/sfnt/ttmtx.c (tt_face_get_metrics)
93 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
94
Werner Lembergb826fa72007-05-19 07:18:48 +0000952007-05-19 Derek Clegg <dclegg@apple.com>
96
97 Savannah patch #5929.
98
99 * include/freetype/tttables.h, src/base/ftobjcs.c
100 (FT_Get_CMap_Format): New function.
101
102 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
103 `format' member.
104 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
105 cmap_info->format.
106
Werner Lemberg6f99c882007-05-19 07:01:49 +00001072007-05-19 Werner Lemberg <wl@gnu.org>
108
109 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
110 before handling subglyphs so that it can be reinitialized each time.
111 This fixes Savannah bug #19859.
112
Werner Lemberg95bc9d32007-05-16 15:19:42 +00001132007-05-16 Werner Lemberg <wl@gnu.org>
114
115 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
116 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
117 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
118 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
119 tt_face_get_metrics): Fix type-punning issues.
120
David Turner0a24bd22007-05-15 10:54:10 +00001212007-05-15 David Turner <david@freetype.org>
122
123 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000124 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
125 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000126 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000127 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000128
Werner Lemberg607dec72007-05-15 06:49:37 +00001292007-05-15 Graham Asher <graham.asher@btinternet.com>
130
131 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
132 variable.
133 * src/autofit/afloader.c (af_loader_load_g): Ditto.
134
135 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
136 (open_face_from_buffer): Initialize `stream'.
137 (FT_Request_Metrics): Remove unused variable.
138 Remove redundant `break' statements.
139 (FT_Get_Track_Kerning): Remove unused variable.
140
141 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
142 afm_parse_kern_data): Remove redundant
143 `break' statements.
144 (afm_parser_parse): Ditto.
145 Don't use uninitialized variables.
146
147 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
148 Use `|' operator instead of `^' to set it.
149 Update all users.
150
151 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
152 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
153
154 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
155 comparison.
156 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
157 (TT_Load_Glyph): Remove unused variable.
158
Werner Lemberg8d463a52007-05-13 16:01:55 +00001592007-05-13 Derek Clegg <dclegg@apple.com>
160
161 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
162 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
163
David Turner711cf842007-05-11 14:36:24 +00001642007-05-11 David Turner <david@freetype.org>
165
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000166 * src/cache/ftbasic.c, include/freetype/ftcache.h
167 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
168 functions that allow us to look up glyphs using an FTC_Scaler object
169 to specify the size, making it possible to use fractional pixel
170 sizes.
171
172 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
173 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000174
Werner Lemberg94be20e2007-05-09 20:02:55 +00001752007-05-09 Graham Asher <graham.asher@btinternet.com>
176
177 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
178 (af_latin_metrics_scale_dim): Fix compiler warnings.
179
Werner Lemberg41271032007-05-06 04:51:48 +00001802007-05-06 Werner Lemberg <wl@gnu.org>
181
182 * builds/win32/visualce/freetype.sln: Removed, as requested by
183 Vincent.
184
Werner Lembergdf49e692007-05-04 06:30:05 +00001852007-05-04 Vincent RICHOMME <richom.v@free.fr>
186
187 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
188 PC targets.
189
190 * docs/CHANGES: Document them.
191
1922007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000193
194 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
195 mmap (which might happen on some RTOS). From Savannah patch #5909.
196
Werner Lemberg106eaf12007-05-03 07:07:47 +00001972007-05-03 Werner Lemberg <wl@gnu.org>
198
199 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
200 * include/freetype/freetype.h (FT_Set_Char_Size): Update
201 documentation.
202
Werner Lemberg1b5267d2007-04-28 21:06:15 +00002032007-04-28 Victor Stinner <victor.stinner@inl.fr>
204
205 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
206 `cmap'.
207
Werner Lembergcc712a22007-04-27 17:16:50 +00002082007-04-27 Werner Lemberg <wl@gnu.org>
209
210 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
211 number of points in contours. Problem reported by Victor Stinner
212 <victor.stinner@haypocalc.com>.
213 (TT_Process_Simple_Glyph): Synchronize variable types.
214
Werner Lemberg45bb18f2007-04-26 06:26:35 +00002152007-04-26 Werner Lemberg <wl@gnu.org>
216
217 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
218 zero in case of error. This fixes Savannah bug #19689.
219
David Turnera8b45e62007-05-11 14:10:30 +00002202007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
221
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000222 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
223 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000224
Werner Lembergfcc1f472007-04-10 11:51:50 +00002252007-04-10 Martin Horak <horakm@centrum.cz>
226
227 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
228 Ignore `hhea' table. This fixes Savannah bug #19261.
229
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002302007-04-09 Werner Lemberg <wl@gnu.org>
231
232 * Version 2.3.4 released.
233 =========================
234
235
236 Tag sources with `VER-2-3-4'.
237
238 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
239 version number to 2.3.4.
240
241 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
242 builds/win32/visualc/freetype.dsp,
243 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
244
245 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
246
247 * builds/unix/configure.raw (version_info): Set to 9:15:3.
248
Werner Lembergf4a52a62007-04-09 08:40:11 +00002492007-04-09 Martin Horak <horakm@centrum.cz>
250
251 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
252 memory stream to avoid a crash with the incremental memory
253 interface (Savannah bug #19260).
254
David Turner1dcb4442007-04-06 08:19:04 +00002552007-04-06 David Turner <david@freetype.org>
256
Werner Lembergc81cf612007-04-06 09:28:23 +0000257 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
258 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000259
Werner Lemberg9f83e052007-04-05 02:28:23 +00002602007-04-04 Werner Lemberg <wl@gnu.org>
261
262 * Version 2.3.3 released.
263 =========================
264
265
266 Tag sources with `VER-2-3-3'.
267
268 * docs/CHANGES: Mention CVE-2007-1351.
269
David Turner7338ec22007-04-03 14:30:34 +00002702007-04-03 David Turner <david@freetype.org>
271
272 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000273 if one of the resolution values is 0, treat it as if it were the
274 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000275
David Turnere6472c12007-04-02 13:13:54 +00002762007-04-02 David Turner <david@freetype.org>
277
Werner Lemberg94f12272007-04-03 07:19:53 +0000278 Add special code to detect `extra-light' fonts and do not snap their
279 stem widths too much to avoid bizarre hinting effects.
280
281 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
282 `extra_light' members.
283
284 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
285 them.
286 (af_latin_metrics_scale_dim): Set `extra_light'.
287 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000288
David Turner3f539692007-03-28 14:53:40 +00002892007-03-28 David Turner <david@freetype.org>
290
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000291 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000292 padding.
293
Werner Lemberga08b2172007-03-28 07:17:17 +00002942007-03-28 Werner Lemberg <wl@gnu.org>
295
296 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
297 gracefully.
298 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000299 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000300 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
301 number of code points in Unicode.
302
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000303 * builds/win32/visualc/index.html,
304 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000305 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000306 s/232/233/.
307
308 * docs/CHANGES: Mention ftdiff.
309
David Turner3b242d32007-03-26 12:03:04 +00003102007-03-26 David Turner <david@freetype.org>
311
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000312 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
313 corresponding code.
314 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000315
Werner Lemberga08b2172007-03-28 07:17:17 +0000316 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000317 computations in order to ignore single-point contours. These are
318 never rasterized and correspond in certain fonts to mark-attach
319 points that are very far from the glyph's real outline, ruining the
320 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000321
Werner Lemberga08b2172007-03-28 07:17:17 +0000322 * src/autofit/afloader.c (af_loader_load_g): In the case of
323 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
324 Otherwise code that uses them will most certainly ruin the fixed
325 advance property.
David Turner23553d62007-03-26 13:37:17 +0000326
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000327 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
328 documentation and bump version number to 2.3.3.
329
330 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
331
332 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000333
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003342007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
335
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000336 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
337 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000338 * builds/vms/ftconfig.h: Ditto.
339 * include/freetype/config/ftconfig.h: Ditto.
340
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00003412007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
342
Werner Lemberg14ffe092007-03-22 06:12:43 +0000343 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
344 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000345 proposed by Sean McBride:
346 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
347
3482007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
349
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000350 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
351 setjmp, proposed by Sean McBride:
352 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
353
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003542007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
355
Werner Lembergc9f6c662007-03-21 13:30:14 +0000356 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
357 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
358 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000359
David Turner74c34eb2007-03-18 07:19:31 +00003602007-03-18 David Turner <david@freetype.org>
361
Werner Lembergc9f6c662007-03-21 13:30:14 +0000362 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
363 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000364
Werner Lembergc9f6c662007-03-21 13:30:14 +0000365 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000366
David Turner89020d92007-03-17 17:48:57 +00003672007-03-17 David Turner <david@freetype.org>
368
Werner Lembergc9f6c662007-03-21 13:30:14 +0000369 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
370 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000371
Werner Lemberg25d592a2007-03-09 07:59:35 +00003722007-03-09 Werner Lemberg <wl@gnu.org>
373
374 * Version 2.3.2 released.
375 =========================
376
377
378 Tag sources with `VER-2-3-2'.
379
380 * builds/win32/visualc/index.html,
381 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000382 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000383 s/231/232/.
384
David Turner3a51afa2007-03-08 10:50:38 +00003852007-03-08 David Turner <david@freetype.org>
386
Werner Lemberg25d592a2007-03-09 07:59:35 +0000387 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000388
Werner Lemberg25d592a2007-03-09 07:59:35 +0000389 * builds/unix/configure.raw (version_info): Set to 9:13:3.
390
391 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
392
393 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000394
Werner Lemberg1e259de2007-03-08 15:39:21 +0000395 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
396 function to work properly, over-writing user-provided buffers in
397 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000398
David Turner121cad52007-03-08 16:43:50 +0000399
Werner Lemberg3d92f082007-03-06 11:59:24 +00004002007-03-05 Werner Lemberg <wl@gnu.org>
401
402 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
403 macro for `strstr'.
404
405 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
406 `trick_names', as suggested by Ivan Nincic.
407
David Turner085bc6e2007-03-05 17:40:03 +00004082007-03-05 David Turner <david@freetype.org>
409
Werner Lembergd112cf02007-03-06 12:06:56 +0000410 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
411 case FT_Init_FreeType fails for some reason. Problem reported by
412 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000413
Werner Lembergd112cf02007-03-06 12:06:56 +0000414 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
415 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
416 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
417 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000418
Werner Lembergd112cf02007-03-06 12:06:56 +0000419 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
420 signed values, not unsigned ones. Problem reported by Johannes
421 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000422
David Turner601aefe2007-02-21 16:47:49 +00004232007-02-21 David Turner <david@freetype.org>
424
Werner Lembergde5e6862007-02-25 21:06:43 +0000425 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
426 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000427
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004282007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
429
430 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
431 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
432 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
433
Werner Lemberga0915172007-02-16 08:12:50 +00004342007-02-16 Werner Lemberg <wl@gnu.org>
435
436 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
437 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
438
David Turner2c4500e2007-02-14 15:08:47 +00004392007-02-14 David Turner <david@freetype.org>
440
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000441 It seems that the following changes fix most of the known
442 interpreter problems with my fonts, but more testing is needed,
443 though.
444
445 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
446 (TT_MulFix14): Rewrite.
447 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
448 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000449
Werner Lembergc6a14082007-02-12 22:08:15 +00004502007-02-12 Werner Lemberg <wl@gnu.org>
451
452 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
453 warnings.
454
455 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
456 (bdf_interpret_style): Ditto.
457
David Turnerc0f9c4a2007-02-12 14:55:03 +00004582007-02-12 David Turner <david@freetype.org>
459
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000460 Simplify projection and dual-projection code interface.
461
Werner Lemberg406d25f2007-02-12 22:01:18 +0000462 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
463 FT_Vector' as argument type.
464 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
465 Updated.
466 (CUR_fast_project, CUR_fast_dualproj): New macros.
467 (Project, Dual_Project, Project_x, Project_y): Updated.
468 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
469 macros.
470
471
472 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
473 adjustments for the non-light auto-hinted modes. Gets rid of
474 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000475
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000476 * src/autofit/aflatin.c (af_latin_hints_link_segments,
477 af_latin_hints_compute_edges): Slight optimization of the segment
478 linker and better handling of serif segments to get rid of broken
479 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000480
David Turnerc0f9c4a2007-02-12 14:55:03 +0000481
Werner Lemberg442bfb82007-02-12 21:44:10 +0000482 Introduce new string functions and the corresponding macros to get
483 rid of various uses of strcpy and other `evil' functions, as well as
484 to simplify a few things.
485
486 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
487 ft_mem_strcpyn): New declarations.
488 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
489 macros.
490 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
491 functions.
492
493 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
494 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
495 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
496 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
497 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
498 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
499 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
500 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000501
Werner Lemberg406d25f2007-02-12 22:01:18 +0000502 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
503
Werner Lemberg582067d2007-02-11 15:03:05 +00005042007-02-11 Werner Lemberg <wl@gnu.org>
505
506 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
507 non-spacing glyphs.
508
Werner Lemberg8f474532007-02-07 08:31:01 +00005092007-02-07 Tom Parker <palfrey@tevp.net>
510
511 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
512 pointer.
513
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005142007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
515
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000516 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
517 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000518 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000519 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
520 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
521 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
522 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000523
524 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
525 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000526 * builds/mac/ftmac.c: Ditto.
527
5282007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
529
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000530 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000531 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000532 #include <ftmac.c>.
533
5342007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
535
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000536 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
537 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
538 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
539 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
540 FT_GetFilePath_From_Mac_ATS_Name.
541 * builds/mac/ftmac.c: Ditto.
542
5432007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
544
Werner Lembergdcbb7082007-02-08 08:54:09 +0000545 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000546 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
547 for passing to FT_New_Face_From_FSSpec.
548
5492007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
550
Werner Lembergdcbb7082007-02-08 08:54:09 +0000551 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000552 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000553
554 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
555 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000556 * builds/mac/ftmac.c (OS_INLINE): Ditto.
557
Werner Lemberg313d7772007-02-01 08:10:45 +00005582007-02-01 Werner Lemberg <wl@gnu.org>
559
560 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
561 Explain why applications shouldn't use it. Found by Alexei.
562
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005632007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000564
565 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
566 message.
567
568 * src/gxvalid/gxvmort1.c
569 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
570 message.
571
Werner Lemberg53935932007-01-31 08:53:02 +00005722007-01-31 Werner Lemberg <wl@gnu.org>
573
574
575 * Version 2.3.1 released.
576 =========================
577
578
579 Tag sources with `VER-2-3-1-FINAL'.
580
581 * builds/win32/visualc/freetype.dsp,
582 builds/win32/visualc/freetype.vcproj: s/230/231/.
583 * builds/win32/visualc/index.html: s/221/231/.
584
585 * vms_make.com: Add `ftgasp'.
586
David Turnera7ee6082007-01-30 10:33:53 +00005872007-01-30 David Turner <david@freetype.org>
588
Werner Lemberg53935932007-01-31 08:53:02 +0000589 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000590
Werner Lemberg53935932007-01-31 08:53:02 +0000591 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000592
Werner Lemberg25d592a2007-03-09 07:59:35 +0000593 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000594 s/2.3.0/2.3.1/.
595
596 * builds/unix/configure.raw (version_info): Set to 9:12:3.
597
598
599 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
600 (af_loader_load_g): Disable the warper (i.e., the light hinting
601 improvements) to make a 2.3.1 bugfix release before introducing a
602 new feature. This should give us more time to tune and improve the
603 warper for the next release.
604
605 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000606
David Turnerd91eebd2007-01-26 15:05:41 +00006072007-01-25 David Turner <david@freetype.org>
608
Werner Lembergbf241762007-01-26 16:08:49 +0000609 For light auto-hinting, improve glyph advance widths and resurrect
610 normal/full hinting to its normal quality.
611
612 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
613 and `xmax_delta'.
614 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
615 and `xmax_delta'.
616
617 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
618 preprocessor conditional with if-clause, handling both light and
619 normal mode.
620
621 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
622 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000623
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00006242007-01-25 Werner Lemberg <wl@gnu.org>
625
626 * docs/release: Updated -- Savannah uses a new uploading scheme.
627
David Turnera42567b2007-01-25 12:23:37 +00006282007-01-25 David Turner <david@freetype.org>
629
Werner Lembergd7855662007-01-25 13:53:56 +0000630 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000631
Werner Lembergd7855662007-01-25 13:53:56 +0000632 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
633 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
634 functions.
David Turnera42567b2007-01-25 12:23:37 +0000635
Werner Lembergd7855662007-01-25 13:53:56 +0000636 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000637
Werner Lembergb1be9e82007-01-25 11:50:00 +00006382007-01-25 Werner Lemberg <wl@gnu.org>
639
640 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000641 correctly in a sanity check. Since this function is only used to
642 load local and global functions, any charstring that called the last
643 local/global function would fail otherwise. This fixes Savannah bug
644 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000645
646 * docs/CHANGES: Document it.
647
David Turnerb6de8d12007-01-23 15:51:50 +00006482007-01-23 David Turner <david@freetype.org>
649
Werner Lembergb1be9e82007-01-25 11:50:00 +0000650 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
651 prevented compilation when disabling both the unpatented and the
652 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000653
Werner Lembergb1be9e82007-01-25 11:50:00 +0000654
655 Fix and enable the warper to improve `light' hinting mode. This is
656 not necessarily a final version, but it seems to work well.
657
658 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
659 Disable code.
660 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
661 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
662
663 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
664 (af_warper_compute_line_best): Fix array size of `scores'.
665 (af_warper_compute): Better handling of border cases.
666 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
667 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000668
Werner Lemberg011d1112007-01-21 09:36:00 +00006692007-01-21 Werner Lemberg <wl@gnu.org>
670
Werner Lemberg42b63b22007-01-21 21:01:33 +0000671 * ChangeLog: Split off older entries into...
672 * ChangeLog.22: This new file.
673
6742007-01-21 Werner Lemberg <wl@gnu.org>
675
Werner Lemberg555258f2007-01-21 09:46:37 +0000676 * docs/CHANGES: Document SHZ fix.
677
6782007-01-21 George Williams <gww@silcom.com>
679
680 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
681 points.
682
6832007-01-21 Werner Lemberg <wl@gnu.org>
684
Werner Lemberg011d1112007-01-21 09:36:00 +0000685 * src/sfnt/ttmtx.c (tt_face_get_metrics)
686 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
687
Werner Lemberg87a5a432007-01-17 12:44:39 +00006882007-01-17 Werner Lemberg <wl@gnu.org>
689
Werner Lembergb8003292007-01-17 12:56:25 +0000690
691 * Version 2.3.0 released.
692 =========================
693
694
695 Tag sources with `VER-2-3-0-FINAL'.
696
6972007-01-17 Werner Lemberg <wl@gnu.org>
698
Werner Lemberg87a5a432007-01-17 12:44:39 +0000699 * docs/release: Updated.
700
David Turner22122722007-01-16 20:06:44 +00007012007-01-16 David Turner <david@freetype.org>
702
Werner Lemberg87a5a432007-01-17 12:44:39 +0000703 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
704 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
705 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
706 warnings.
David Turner22122722007-01-16 20:06:44 +0000707
Werner Lemberg267e1d72007-01-15 07:48:09 +00007082007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
709
710 * builds/amiga/makefile, builds/amiga/makefile.os4,
711 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
712
713 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
714
Werner Lemberg8c4120d2007-01-15 06:42:40 +00007152007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
716
717 Fix various compiler warnings.
718
719 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
720 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
721 s/index/strike_index/.
722 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
723
724 * src/gxvalid/gxvmorx5.c
725 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
726
727 * src/truetype/ttinterp.c (Compute_Point_Displacement),
728 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
729 uninitialized variables.
730
Werner Lemberg6164a9d2007-01-13 23:01:36 +00007312007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
732
733 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
734
Werner Lemberg281c1482007-01-13 22:50:51 +00007352007-01-13 Werner Lemberg <wl@gnu.org>
736
737 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
738 versions up to 0x3FF without complaining.
739
Werner Lembergac250b22007-01-13 14:01:36 +00007402007-01-13 Derek Clegg <dclegg@apple.com>
741
742 Add FT_Get_PS_Font_Info interface to CFF driver.
743
744 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
745 (CFF_FontRec): Add `font_info' field.
746
747 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
748 (cff_font_done): Free font->font_info if necessary.
749
750 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
751 (cff_service_ps_info): Register cff_ps_get_font_info.
752
Werner Lemberg23df31a2007-01-13 08:45:00 +00007532007-01-13 Werner Lemberg <wl@gnu.org>
754
755 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
756 with C++ compiler.
757
758 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
759 af_glyph_hints_dump_edges): Ditto.
760
761 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
762 `modules.cfg').
763
764 * src/sfnt/ttsbit0.h: Remove.
765
766 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
767
Werner Lemberg27cf9de2007-01-13 07:34:23 +00007682007-01-12 David Turner <david@freetype.org>
769
770 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
771 bug in the bitmap emboldener if the pitch of the source bitmap is
772 much larger than its width.
773
774 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
775 compilation warning.
776
Werner Lemberg6d96d312007-01-12 10:30:19 +00007772007-01-12 Werner Lemberg <wl@gnu.org>
778
779 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
780 `automake' CVS module from sources.redhat.com.
781
Werner Lemberg17432b52007-01-12 09:28:44 +00007822007-01-11 Werner Lemberg <wl@gnu.org>
783
784 * src/type1/t1load.c (is_space): Removed.
785 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
786 (parse_charstrings): Use IS_PS_TOKEN.
787
788
789 * autogen.sh: Avoid bash specific syntax.
790
David Turner038ace22007-01-11 15:00:59 +00007912007-01-11 David Turner <david@freetype.org>
792
Werner Lemberg17432b52007-01-12 09:28:44 +0000793 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000794
Werner Lemberg17432b52007-01-12 09:28:44 +0000795 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000796
Werner Lemberg17432b52007-01-12 09:28:44 +0000797 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
798 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000799 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000800
Werner Lemberg17432b52007-01-12 09:28:44 +0000801 * autogen.sh: Small fix to get it working on Mac OS X properly:
802 The issue is that GNU libtool is called `glibtool' on this platform,
803 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000804
David Turner2628ea92007-01-10 13:15:56 +00008052007-01-10 David Turner <david@freetype.org>
806
Werner Lemberg17432b52007-01-12 09:28:44 +0000807 * all-sources: Tag all sources with VER-2-3-0-RC1 and
808 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000809
Werner Lemberg17432b52007-01-12 09:28:44 +0000810 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
811 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
812 version number to 2.3.0.
813
814 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
815 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000816
817 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000818 include/freetype/ftlcdfil.h: Update reference documentation with
819 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000820
Werner Lemberg17432b52007-01-12 09:28:44 +0000821 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
822 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000823
Werner Lembergbf02d392007-01-10 07:07:37 +00008242007-01-10 Derek Clegg <dclegg@apple.com>
825
826 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
827 values.
828
David Turnerf48b60e2007-01-08 15:15:32 +00008292007-01-08 David Turner <david@freetype.org>
830
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000831 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000832
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000833 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
834 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000835 corresponding to a given character pixel size.
836
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000837 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
838 `gasp' table, in order to avoid potential problems with later
839 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000840
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000841 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
842 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000843
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000844 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
845 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
846 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
847 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000848
Werner Lemberge6b6f372007-01-07 00:06:47 +00008492007-01-07 Werner Lemberg <wl@gnu.org>
850
Werner Lembergb8004d22007-01-07 09:13:38 +0000851 * src/cid/cidparse.c (cid_parser_new): Improve error message for
852 Type 11 fonts.
853 Scan for `/sfnts' token.
854
8552007-01-07 Werner Lemberg <wl@gnu.org>
856
857 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000858
Werner Lembergbe5f7972007-01-06 07:51:48 +00008592007-01-06 Werner Lemberg <wl@gnu.org>
860
861 * src/cff/cffload.c (cff_index_init): Remove unused variable.
862 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
863
David Turnera8cf42b2007-01-04 16:46:46 +00008642007-01-04 David Turner <david@freetype.org>
865
Werner Lembergf6294392007-01-06 07:47:45 +0000866 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
867 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000868
Werner Lembergf6294392007-01-06 07:47:45 +0000869
870 Do not allocate interpreter-specific tables in memory if we are not
871 going to load glyphs with the bytecode interpreter anyway.
872
873 * src/truetype/ttgload.c (tt_loader_init): Load execution context
874 only if glyph is hinted.
875 Updated.
876 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
877 and `cvs_ready'.
878 Add `tt_size_ready_bytecode' declaration.
879 * src/truetype/ttobjs.c (tt_size_done_bytecode,
880 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
881 (tt_size_init): Move most code into `tt_size_init_bytecode'.
882 (tt_size_done): Move most code into `tt_size_done_bytecode'.
883 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000884
David Turner91a34022007-01-05 14:47:08 +0000885
Werner Lembergf6294392007-01-06 07:47:45 +0000886 Don't extract the metrics table from the SFNT font file. Instead,
887 reparse it on each glyph load. The runtime difference is not
888 noticeable, and it can save a lot of heap memory when memory-mapped
889 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000890
Werner Lembergf6294392007-01-06 07:47:45 +0000891 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
892 `horz_metrics_offset' and `vert_metrics_ofset'.
893 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
894 Updated.
895
896
897 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
898
899
900 Do not load the CFF index offsets into memory, since this wastes a
901 *lot* of heap memory with large Asian CFF fonts. There is no
902 significant performance loss.
903
904 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
905 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
906 `data_size'.
907 (CFF_CharsetRec): Add field `num_glyphs'.
908
909 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
910 cff_charset_cid_to_gindex): New functions.
911 (cff_new_index): Renamed to...
912 (cff_index_init): This. Update all callers.
913 Updated -- some code has been moved to `cff_index_load_offsets'.
914 (cff_done_index): Renamed to...
915 (cff_index_done): This. Update all callers.
916 (cff_index_get_pointers, cff_index_access_element): Updated to use
917 stream offsets.
918 (cff_charset_compute_cids): Set `num_glyphs' field.
919 (cff_encoding_load): Updated.
920
921 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000922
9232007-01-04 David Turner <david@freetype.org>
924
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000925 * docs/INSTALL.UNIX: Simplify some parts, add reference to
926 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000927
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000928 * README.CVS: Add common problem description and solution
929 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000930
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000931 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000932
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000933 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000934
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000935 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000936
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000937 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
938 (TWorker): This.
939 Remove `count_table' and `memory'.
940 Make `grays' a pointer.
941 (TRaster): New structure.
942 (count_table): New static array.
943 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
944 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
945 ft_black_set_mode, ft_black_render): Updated.
946 (ft_black_init): Don't initialize `count_table'.
947 (ft_black_reset): Use the render pool. This saves about 6KB of
948 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000949
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000950 * src/smooth/ftgrays.c (TRaster): Replaced with...
951 (TWorker): This.
952 Remove `memory'.
953 (TRaster): New structure.
954
955 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
956 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
957 gray_render_span, gray_raster_render): Updated.
958 (gray_raster_reset): Use the render pool. This saves about 6KB of
959 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000960
David Turner8a6c44e2007-01-04 17:03:11 +0000961 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
962 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000963 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
964 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
965 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000966
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000967 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
968 Remove a typo that results in no hinting and a memory leak with some
969 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000970
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000971 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000972 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000973 CFF_Faces in it. We need to close all faces before destroying the
974 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000975
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00009762007-01-02 Werner Lemberg <wl@gnu.org>
977
978 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
979 Remove compiler warning.
980
David Turner9207e002007-01-02 16:58:13 +00009812007-01-02 David Turner <david@freetype.org>
982
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000983 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000984
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009852006-12-31 Masatake YAMATO <jet@gyve.org>
986
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000987 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
988 function.
989 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000990 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000991 `gxv_kern_subtable_fmt0_pairs_validate'.
992
David Turner115b4422006-12-22 11:37:05 +00009932006-12-22 David Turner <david@freetype.org>
994
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000995 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
996 warnings.
David Turner115b4422006-12-22 11:37:05 +0000997
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000998 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
999 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001000
Werner Lemberg4755bf72006-12-16 08:58:44 +000010012006-12-16 Anders Kaseorg <anders@kaseorg.com>
1002
1003 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1004 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1005
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010062006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1007
Werner Lemberg9b774e22007-01-16 06:11:27 +00001008 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001009 sync with the modification by Jens Claudius on 2006-08-22; cf.
1010 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 +00001011
10122006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1013
1014 * src/base/ftmac.c: Specialized for Mac OS X only.
1015 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1016 * builds/unix/configure.raw: Ditto. When explicit switches for
1017 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1018 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1019
10202006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1021
1022 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1023 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1024 instead of src/base/ftmac.c
1025 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1026 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1027 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1028 that cannot be built at present.
1029
10302006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1031
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001032 * src/base/ftobjs.c: Improvement of resource fork handler for
1033 POSIX, cf.
1034 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001035 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1036 format or .dfont, to simulate the face index number counted by ftmac.c.
1037 (IsMacResource): Return the number of scalable faces correctly.
1038
Werner Lembergec5b4502006-12-10 07:51:38 +000010392006-12-10 Werner Lemberg <wl@gnu.org>
1040
1041 * builds/toplevel.mk (version): Protect against `distclean' target.
1042
Werner Lembergb26b3142006-12-09 20:01:43 +000010432006-12-09 Werner Lemberg <wl@gnu.org>
1044
1045 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1046 or `type'.
1047
1048 * builds/freetype.mk (version): Extracted from freetype.h, using
1049 GNU make's built-in string functions.
1050 (refdoc): Use $(version) instead of static version number.
1051
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010522006-12-08 Werner Lemberg <wl@gnu.org>
1053
1054 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1055
Werner Lemberg15c29502006-12-09 07:29:54 +000010562006-12-08 Vladimir Volovich <vvv@vsu.ru>
1057
1058 * src/tools/apinames (State): Remove final comma in structure -- xlc
1059 v5 under AIX 4.3 doesn't like this.
1060
David Turnerdbf3b432006-12-07 21:18:09 +000010612006-12-07 David Turner <david@freetype.org>
1062
Werner Lemberg256a3512006-12-08 06:49:33 +00001063 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1064 to the spacing of auto-fitted glyphs. This only impacts rare
1065 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001066
Werner Lemberg11171312006-12-03 09:43:40 +000010672006-12-03 Werner Lemberg <wl@gnu.org>
1068
1069 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1070
Werner Lemberg960ba592006-12-01 08:20:47 +000010712006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001072
Werner Lemberg960ba592006-12-01 08:20:47 +00001073 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1074 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1075 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001076
David Turner80658e52006-11-28 08:09:20 +00001077
Werner Lemberg960ba592006-12-01 08:20:47 +00001078 * include/freetype/ftxf86.h: Fix and extend comment so that it
1079 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001080
Werner Lemberg960ba592006-12-01 08:20:47 +00001081 * include/freetype/ftchapters.h: Add `font_format' section.
1082
1083
1084 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1085 to TOC in index page.
1086
10872006-11-28 David Turner <david@freetype.org>
1088
1089 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1090 trying to render into a zero-width/height bitmap, not an error code.
1091
1092 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1093
1094 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1095 ones instead.
1096
1097 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1098 variable.
David Turner80658e52006-11-28 08:09:20 +00001099
Werner Lemberg8636c292006-11-26 22:28:13 +000011002006-11-26 Pierre Hanser <hanser@club-internet.fr>
1101
1102 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1103
Werner Lemberg960ba592006-12-01 08:20:47 +000011042006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001105
Werner Lemberg960ba592006-12-01 08:20:47 +00001106 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1107 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1108 Add stubs to link the `ftgrid' test program when debugging is
1109 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001110
Werner Lemberg960ba592006-12-01 08:20:47 +000011112006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001112
1113 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001114 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1115
1116 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1117 Emit more sensible information.
1118
1119 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1120
1121 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1122 rounding of blue values.
1123 (af_latin_hints_compute_segments): Hint segment heights.
1124 (af_latin_hints_link_segments): Reduce `len_score' value.
1125 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1126 value and use `height' member for comparisons.
1127 (af_latin_hint_edges): Extend logging message.
1128 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001129
Werner Lemberg91959bf2006-11-22 10:36:55 +000011302006-11-22 Werner Lemberg <wl@gnu.org>
1131
1132 Fix Savannah bug #15553.
1133
1134 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1135 program after a change from mono to grayscaling (and vice versa).
1136 Use correct constant for comparison to get `exec->grayscale'.
1137
Werner Lemberg913a3652006-11-19 09:19:17 +000011382006-11-18 Werner Lemberg <wl@gnu.org>
1139
1140 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001141 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001142 This patch fixes Savannah bug #18301.
1143
1144 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1145 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1146 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1147 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1148 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1149 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1150 (FNT_Load_Glyph): Check validity of `glyph_index'.
1151
David Turner7bab6ae2006-11-13 11:25:06 +000011522006-11-13 David Turner <david@freetype.org>
1153
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001154 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1155 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001156
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001157 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1158 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1159 when building the library to change the default LCD filter to be
1160 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001161
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001162 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001163
David Turner8765c712006-11-10 16:49:42 +000011642006-11-10 David Turner <david@freetype.org>
1165
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001166 * src/smooth/ftsmooth.c: API change for the LCD
1167 filter. The FT_LcdFilter value is an enumeration describing which
1168 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1169 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1170 algorithm which produces strong color fringes for everything
1171 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001172
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001173 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1174 second parameter to an enum type.
1175
1176 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1177 (_ft_lcd_filter): Rename to...
1178 (_ft_lcd_filter_fir): This.
1179 Update parameters.
1180 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1181 (FT_Library_Set_LcdFilter): Update parameters.
1182 Handle new filter modes.
1183
1184 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1185 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1186 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1187 callback and update other fields.
1188
1189 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1190 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1191 Other minor improvements.
1192
1193 * src/autofit/aflatin.c: Various tiny improvements that drastically
1194 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1195 (af_latin_hints_compute_edges): Fix typo.
1196 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001197
David Turner4e9cc3c2006-11-09 16:31:52 +000011982006-11-09 David Turner <david@freetype.org>
1199
Werner Lemberg49c77a82006-11-09 21:51:57 +00001200 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1201 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001202
Werner Lemberg5e430892006-11-07 09:35:03 +000012032006-11-07 Zhe Su <james.su@gmail.com>
1204
1205 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1206 also.
1207
Werner Lemberg111b5ae2006-11-03 09:40:12 +000012082006-11-03 Werner Lemberg <wl@gnu.org>
1209
1210 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1211
David Turner40604742006-11-02 16:37:35 +000012122006-11-02 David Turner <david@freetype.org>
1213
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001214 Add a few tweaks to better handle serif fonts.
1215 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001216
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001217 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1218 segments that are less than 1.5 pixels high. This gets rid of
1219 *many* corner cases with serifs.
1220 (af_latin_align_linked_edge): Add logging message.
1221 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1222 Add logging messages.
1223 Handle AF_EDGE_FLAG flag specially.
1224
1225 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1226 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1227
1228 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1229 Update external declarations.
1230 (af_corner_orientation, af_corner_is_flat): Replaced by...
1231
1232 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1233 ft_corner_is_flat): These declarations.
1234
1235 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1236 Comment out. Replaced by...
1237
1238 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1239 These functions. Update all callers.
1240 (FT_Add64) [!FT_LONG64]: Simplify.
1241
1242 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1243 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1244 production of garbage by missing lots of segments.
1245
1246 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1247
1248 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1249 [AF_DEBUG]: Set _af_debug_hints.
1250
1251
1252 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1253 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1254 and ft_corner_orientation.
1255
1256
1257 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001258
Werner Lemberge88c5262006-10-24 05:46:26 +000012592006-10-24 Werner Lemberg <wl@gnu.org>
1260
1261 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1262
1263 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1264 as argument.
1265
David Turnera1861392006-10-23 16:00:59 +000012662006-10-23 Zhe Su <zsu@novell.com>
1267
Werner Lemberg715e96e2006-10-24 05:28:45 +00001268 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1269 better deal with broken Asian fonts with strange glyphs, having
1270 self-intersections and other peculiarities. The used algorithm is
1271 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001272
David Turnere140f142006-10-23 08:56:57 +000012732006-10-23 David Turner <david@freetype.org>
1274
Werner Lemberg715e96e2006-10-24 05:28:45 +00001275 Speed up the CFF font loader. With some large CFF fonts,
1276 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001277
Werner Lemberg715e96e2006-10-24 05:28:45 +00001278 * src/cff/cffload.c (cff_get_offset): Removed.
1279 (cff_new_index): Inline functionality of `cff_get_offset'.
1280 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1281 (cff_charset_done): Call `cff_charset_free_cids'.
1282 (cff_charset_load): Call `cff_charset_compute_cids'.
1283 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1284
1285 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1286 with FT_NEXT_XXX.
1287
1288
1289 Speed up the Postscript hinter, with more than 100% speed increase
1290 on my machine.
1291
1292 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1293 psh_corner_orientation): New functions.
1294 (psh_glyph_compute_inflections): Merge loops for efficiency.
1295 Use `psh_corner_orientation'.
1296 (psh_glyph_init): Use `psh_corner_is_flat'.
1297 (psh_hint_table_find_strong_point): Renamed to...
1298 (psh_hint_table_find_strong_points): This.
1299 Rewrite, adding argument to handle all points at once.
1300 Update all callers.
1301 (PSH_MAX_STRONG_INTERNAL): New macro.
1302 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001303
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013042006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1305
1306 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001307 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001308
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000013092006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1310
1311 * docs/INSTALL.CROSS: New document file for cross-building.
1312
1313 * builds/unix/configure.raw: Preliminary cross-building support.
1314 Find native C compiler and pass it by CC_BUILD, and
1315 find suffix for native executable and pass it by EXEEXT_BUILD.
1316 Also suffix for target executable is passed by EXEEXT.
1317
Werner Lembergb9e6d692006-10-15 08:58:40 +00001318 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1319 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001320 CC_BUILD and EXEEXT_BUILD.
1321
Werner Lembergb9e6d692006-10-15 08:58:40 +00001322 * builds/exports.mk (APINAMES_EXE): Change the extension for
1323 apinames from the suffix for target (E) to that for building host
1324 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001325
Werner Lemberg82a07e92006-10-12 06:20:44 +000013262006-10-12 Werner Lemberg <wl@gnu.org>
1327
1328 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1329 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1330 which reference those files.
1331
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000013322006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1333
Werner Lembergb9e6d692006-10-15 08:58:40 +00001334 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1335 embedded in freetype2.pc and freetype-config. Use it to record
1336 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001337
1338 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1339
1340 * builds/unix/freetype-config.in: Ditto.
1341
Werner Lemberg28e17d92006-10-11 17:27:47 +000013422006-10-11 Werner Lemberg <wl@gnu.org>
1343
1344 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1345 development.
1346
Jens Claudius336d2292006-10-03 08:53:37 +000013472006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1348
1349 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1350 argument to ft_setjmp.
1351
1352 * include/freetype/internal/ftvalid.h: Add comment that
1353 ft_validator_run must not be used.
1354
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013552006-10-01 Werner Lemberg <wl@gnu.org>
1356
1357 * src/base/ftbase.c: Undo change from 2006-09-30.
1358
1359 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1360
13612006-09-30 David Turner <david@freetype.org>
1362
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001363 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1364 s/unpatented_hinting/ignore_unpatented_hinter/.
1365 Update all callers.
1366
1367 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1368 auto-hinting shall be used or not.
1369
1370 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001371
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013722006-09-30 Werner Lemberg <wl@gnu.org>
1373
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001374 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1375 in use).
1376
1377 * src/base/ftbase.c: Include `ftlcdfil.c'.
1378
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013792006-09-29 Werner Lemberg <wl@gnu.org>
1380
1381 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1382 overlapping segments. Bug reported by Stefan Koch.
1383
David Turnerad830712006-09-27 16:20:59 +000013842006-09-28 David Turner <david@freetype.org>
1385
Werner Lemberg2c002e12006-09-29 21:31:53 +00001386 Fix a bug in the automatic unpatented hinting support which prevents
1387 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001388
Werner Lemberg2c002e12006-09-29 21:31:53 +00001389 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1390 s/force_autohint/unpatented_hinting/. Update all callers.
1391
1392 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1393
1394 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001395
David Turner8a317cf2006-09-27 07:52:48 +000013962006-09-27 David Turner <david@freetype.org>
1397
Werner Lemberg2c002e12006-09-29 21:31:53 +00001398 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001399
David Turner8a317cf2006-09-27 07:52:48 +00001400
David Turnere140f142006-10-23 08:56:57 +00001401 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001402 In a default build, the function `FT_Library_SetLcdFilter' returns
1403 `FT_Err_Unimplemented_Feature'; you need to #define
1404 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1405 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001406
Werner Lemberg2c002e12006-09-29 21:31:53 +00001407 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001408
Werner Lemberg2c002e12006-09-29 21:31:53 +00001409 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1410 typedef.
1411 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1412 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001413
Werner Lemberg2c002e12006-09-29 21:31:53 +00001414 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1415 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001416
Werner Lemberg2c002e12006-09-29 21:31:53 +00001417 Handle subpixel rendering.
1418 Simplify function.
1419 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1420 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1421
1422 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1423 pointing to <freetype/ftlcdfil.h>.
1424
1425 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1426 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1427
1428 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001429
Werner Lemberge20df4a2006-09-27 06:29:21 +000014302006-09-26 David Bustin
1431
1432 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1433 correctly. Reported as Savannah bug #17843.
1434
David Turner6f8c6222006-09-26 15:42:44 +000014352006-09-26 David Turner <david@freetype.org>
1436
Werner Lemberg110246c2006-09-26 21:55:44 +00001437 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1438 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1439 horizontal and vertical hinting for the purpose of debugging the
1440 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001441
Werner Lemberg110246c2006-09-26 21:55:44 +00001442 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1443 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001444
Werner Lemberg110246c2006-09-26 21:55:44 +00001445 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1446
1447 * include/freetype/config/ftoption.h, devel/ftoption.h
1448 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1449 we want to compile LCD-optimized rendering code (à la ClearType) or
1450 not. The macro *must* be disabled in default builds of the library
1451 for patent reasons.
1452
1453 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1454 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1455 isn't defined at compile time. This only changes the content of the
1456 rendered glyph to match the one of normal gray-level rendering,
1457 hence clients should not need to be modified.
1458
1459 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001460
Werner Lemberg745ff2c2006-09-19 05:48:02 +000014612006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1462
1463 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1464 LWFN fails and both are available.
1465
David Turnerf3050052006-09-11 12:00:32 +000014662006-09-11 David Turner <david@freetype.org>
1467
Werner Lembergf9644552006-09-12 13:48:10 +00001468 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1469 report their English names through an Apple Roman
1470 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001471
Werner Lembergf9644552006-09-12 13:48:10 +00001472 If the font uses another name entry with language_id == English, it
1473 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001474
Werner Lembergf9644552006-09-12 13:48:10 +00001475 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1476 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001477
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014782006-09-05 Werner Lemberg <wl@gnu.org>
1479
1480 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001481 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001482 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1483 `HAN NOM B.ttf').
1484
1485 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1486
David Turner772e55d2006-09-05 09:45:15 +000014872006-09-05 David Turner <david@freetype.org>
1488
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001489 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001490
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001491 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1492 (TRaster): Remove `count_ex' and `count_ey'.
1493 (gray_find_cell): Remove 2nd and 3rd argument.
1494 (gray_alloc_cell): Merged with `gray_find_cell'.
1495 (gray_record_cell): Simplify.
1496 (gray_set_cell): Rewrite.
1497 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1498 (gray_render_span): Don't use FT_MEM_SET for small values.
1499 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1500 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1501 bitmap scanline.
1502 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001503
David Turneraa557a92006-09-04 16:42:44 +000015042006-09-04 David Turner <david@freetype.org>
1505
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001506 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1507 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001508
Werner Lemberg2d8629b2006-09-03 06:18:45 +000015092006-09-03 Werner Lemberg <wl@gnu.org>
1510
1511 * devel/ftoption.h: Synchronize with
1512 include/freetype/config/ftoption.h.
1513
1514 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1515 variable declaration.
1516 (gray_convert_glyph): Fix compiler warnings.
1517
David Turner6d79f212006-09-01 14:09:35 +000015182006-09-01 David Turner <david@freetype.org>
1519
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001520 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1521 to recognize a few fonts that require the automatic unpatented
1522 loader.
David Turnerbd502952006-09-01 19:05:24 +00001523
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001524 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1525 rasterizer. The speed improvement is between 15% and 25%, depending
1526 on the font data.
1527
1528 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1529 (TCell): Redefine.
1530 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1531 (gray_init_cells): Updated.
1532 (gray_find_cell, gray_alloc_cell): New functions.
1533 (gray_record_cell): Rewritten to use `gray_find_cell' and
1534 `gray_alloc_cell'.
1535 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1536 QSORT_THRESHOLD):
1537 Removed.
1538 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1539 gray_dump_cells): Removed.
1540 (gray_sweep): Rewritten.
1541 (gray_convert_glyph): Rewrite code which used one of the sorting
1542 functions.
1543 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001544
Werner Lembergd898aed2006-08-29 09:50:34 +000015452006-08-29 Dr. Werner Fink <werner@suse.de>
1546
1547 * configure: Make it possible to handle configure options which
1548 have strings containing spaces.
1549
15502006-08-27 David Turner <david@freetype.org>
1551
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001552 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1553 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1554 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1555
1556 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1557 src/truetype/truetype.c, src/truetype/ttdriver.c,
1558 src/truetype/ttgload.c, src/truetype/ttgload.h,
1559 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1560 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1561 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1562
1563 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1564 member `force_autohint'.
1565
1566 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1567
1568 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1569 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001570
Jens Claudiusa787f452006-08-27 11:26:18 +000015712006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1572
1573 Fix miscellaneous compiler warnings.
1574
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001575 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1576 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001577
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001578 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1579 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1580 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001581
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001582 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1583 volatileness of argument to ft_longjmp. Spotted by Werner
1584 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001585
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001586 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1587 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001588
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001589 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1590 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001591
Werner Lembergc4c35b72006-08-27 08:03:46 +000015922006-08-27 Werner Lemberg <wl@gnu.org>
1593
1594 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1595 Reported by Jens.
1596
Jens Claudius088e44e2006-08-22 14:24:30 +000015972006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001598
Jens Claudius088e44e2006-08-22 14:24:30 +00001599 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001600 about addresses of volatile objects passed as function arguments as
1601 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001602
Werner Lembergc4c35b72006-08-27 08:03:46 +00001603 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1604 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001605
1606 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1607 argument `table' a pointer to a volatile object.
1608
1609 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1610 argument `table' a pointer to a volatile object.
1611
Jens Claudius2652bd52006-08-18 17:20:37 +000016122006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1613
1614 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1615 variable `_sfnt' as volatile since it must keep its value across
1616 a call to ft_setjmp.
1617 (gxv_validate): Same for local variables `memory' and `valid'.
1618 (classic_kern_validate): Same for local variables `memory',
1619 `ckern', and `valid'.
1620
1621 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1622 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1623 `jstf', and 'valid'.
1624
1625 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1626 local variable `cmap'.
1627
David Turner9fbfc6a2006-08-16 09:11:31 +000016282006-08-16 David Turner <david@freetype.org>
1629
Werner Lemberg12342992006-08-19 11:18:09 +00001630 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1631 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001632
Werner Lemberg12342992006-08-19 11:18:09 +00001633 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1634 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001635
David Turner33f5f242006-08-16 16:50:55 +00001636
Werner Lemberg12342992006-08-19 11:18:09 +00001637 Improvements to native TrueType hinting. This is a first try,
1638 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1639
1640 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1641 `extra_points2'.
1642
1643 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1644 `orus'.
1645
1646 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1647 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1648 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1649 handle `extra_points2'.
1650
1651 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1652 Remove compiler warning.
1653 (cur_to_arg): Remove macro.
1654 (TT_Hint_Glyph): Updated.
1655 (TT_Process_Simple_Glyph): Handle `orus'.
1656
1657 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1658 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1659 (LOC_Ins_IUP): Renamed to...
1660 (IUP_WorkerRec): This.
1661 Add `orus' member.
1662 (Shift): Renamed to...
1663 (_iup_worker_shift): This.
1664 Updated.
1665 (Interp): Renamed to...
1666 (_iup_worker_interpolate): This.
1667 Updated to handle `orus'.
1668 (Ins_IUP): Updated.
1669
1670 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1671 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001672
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000016732006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1674
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001675 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001676 build ftvalid in ft2demos. This has been inadvertedly changed
1677 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001678
16792006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1680
Werner Lemberg12342992006-08-19 11:18:09 +00001681 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1682 Jens:
1683 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001684
Werner Lemberg12342992006-08-19 11:18:09 +00001685 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1686 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001687
1688 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1689
Jens Claudius9950adc2006-08-13 12:14:36 +000016902006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1691
Werner Lemberg12342992006-08-19 11:18:09 +00001692 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1693 T1_TOKEN_TYPE_KEY.
1694 (T1_FieldRec): Add `dict'.
1695 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1696 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1697 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001698
Werner Lemberg12342992006-08-19 11:18:09 +00001699 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1700 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001701
1702 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1703
1704 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001705 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1706 not T1_TOKEN_TYPE_ANY.
1707 (ps_parser_load_field): Make sure a token that should be a string or
1708 name is really a string or name.
1709 Avoid memory leak if a keyword has been already encountered and its
1710 value is overwritten.
1711 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1712 T1_FIELD_XXX.
1713 (parse_dict): Ignore keywords that occur in the wrong dictionary
1714 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001715
Werner Lemberg12342992006-08-19 11:18:09 +00001716 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1717 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001718
Werner Lemberg12342992006-08-19 11:18:09 +00001719 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1720 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001721
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000017222006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1723
1724 Move creation of field `buildchar' of T1_DecoderRec out of
1725 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1726 of it.
1727
1728 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1729 and `T1_Compute_Max_Advance'.
1730
1731 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1732 Remove field `face', add `len_buildchar'.
1733
1734 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1735 field `buildchar'.
1736
1737 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1738 finisher for T1_Decoder.
1739 (cid_slot_load_glyph): Do not ignore failure when initializing the
1740 T1_Decoder.
1741
1742 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1743 Updated.
1744 (t1_decoder_init): Remove initialization of fields `buildchar' and
1745 `len_buildchar'.
1746 (t1_decoder_done): Remove deallocation of field `buildchar'.
1747
1748 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1749 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1750 T1_Decoder.
1751 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1752 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1753 case of error.
1754
1755 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1756 `buildchar' of T1_FaceRec.
1757
1758 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1759 `buildchar' of T1_FaceRec.
1760
Werner Lemberg1a380e02006-07-14 18:28:08 +000017612006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1762
1763 * freetype2/include/freetype/internal/psaux.h: New macros
1764 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1765 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1766 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1767 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1768 (T1_DecoderRec): New fields `buildchar' and `face'.
1769 (IS_PS_TOKEN): New macro.
1770
1771 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1772 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1773
1774 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1775 `default_design_vector' and `num_default_design_vector'.
1776
1777 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1778 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1779 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1780
1781 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1782 `token' argument to be NULL if we want only to count the number of
1783 tokens.
1784 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1785 want to skip the array.
1786 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1787 want to skip the array.
1788
1789 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1790 support for (partially commented out) othersubrs 19-25, 27, and 28.
1791 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1792 (t1_decoder_done): Release new field `buildchar'.
1793
1794 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1795 functions.
1796 (t1_keywords): Register them.
1797 (t1_allocate_blend): Updated.
1798 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1799 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1800 (parse_dict): Remove `keyword_flags' argument.
1801 Use new macro IS_PS_TOKEN.
1802 Changed function so that later PostScript definitions override
1803 earlier ones.
1804 (t1_init_loader): Initialize new field `keywords_encountered'.
1805 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1806 `len_buildchar'.
1807 Remove `keywords_flags'.
1808
1809 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1810 `keywords_encountered'.
1811 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1812
1813 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1814 New entries for parsing /NDV, /CDV, and /DesignVector.
1815
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000018162006-07-07 Werner Lemberg <wl@gnu.org>
1817
1818 Add many checks to protect against malformed PCF files.
1819
1820 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1821 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1822
1823 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1824 data and check that tables don't overlap (using a simple
1825 bubblesort).
1826 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1827 New macros which give the size of data structures in the data
1828 stream.
1829 (pcf_get_properties): Use rough estimates to get array size limits.
1830 Assign `face->nprops' and `face->properties' earlier so that a call
1831 to PCF_Face_Done can do the clean-up in case of error.
1832 Protect against invalid string offsets.
1833 (pcf_get_metrics): Clean up code.
1834 Adjust tracing message levels.
1835 Use rough estimate to get array size limit.
1836 (pcf_get_bitmaps): Clean up code.
1837 Adjust tracing message levels.
1838 Use rough estimates to get offset limits.
1839 (pcf_get_encodings): Adjust tracing message level.
1840 (pcf_get_accel): Clean up code.
1841
Werner Lemberg8eb05252006-06-27 06:20:01 +000018422006-06-26 Werner Lemberg <wl@gnu.org>
1843
1844 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1845 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1846
Werner Lemberg24703f82006-06-26 19:12:51 +000018472006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1848
1849 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1850 (t1_decoder_parse_charstrings): Operator with
1851 opcode 15 pops its two arguments.
1852 Handle the case where the pops of an othersubr may be part of a
1853 subroutine.
1854 Handle unknown othersubrs gracefully: count their operands and let
1855 the following pop operators push the operands as the results onto
1856 the Type1 stack.
1857 Improve handling of setcurrentpoint opcode.
1858
Werner Lembergc011f4c2006-06-26 09:40:00 +000018592006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1860
1861 The Type 1 parser now skips over top-level procedures as required
1862 for a `Simplified Parser'. This makes the parser more robust as it
1863 doesn't poke around in PostScript code. Additionally, it makes the
1864 FontDirectory hackery in src/type1/t1load.c unnecessary.
1865
1866 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1867 (skip_literal_string): Add FT_Error as return value.
1868 Handle escapes better.
1869 (skip_string): Add FT_Error as return value.
1870 Don't set `parser->error' but return error code directly.
1871 (skip_procedure): New function.
1872 (ps_parser_skip_PS_token): Handle procedures.
1873 Update code.
1874 (ps_parser_to_token): Update code.
1875 (ps_parser_load_field_table): Handle bbox entries also.
1876
1877 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1878 Add commented-out code for synthetic fonts.
1879
Werner Lemberga2da05c2006-06-25 06:27:27 +000018802006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1881
1882 Fix two hinting bugs as reported in
1883 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1884
1885 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1886 `first_point' member.
1887
1888 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1889 `first_point'.
1890 (TT_Process_Composite_Glyph): Always untouch points.
1891
1892 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1893 `first_point' and `last_point' in case of composite glyphs.
1894 (Ins_IUP): Fix computation of `end_point'.
1895
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018962006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1897
Werner Lembergef3d2c22006-06-25 06:07:14 +00001898 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1899 Mac. The original patch was written by David Sachitano and Lawrence
1900 Coopet, and modified by Sean McBride for MPW compatibility. Only
1901 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001902
Werner Lembergef3d2c22006-06-25 06:07:14 +00001903 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1904 Mac OS X platforms.
1905 (OS_INLINE): Undefine before definition.
1906 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1907 FontAssociation table in FOND resource.
1908 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1909 and fontSize at each entry of FontAssociation table in FOND
1910 resource.
1911 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1912 ffStylOff of FamilyRecord header of FOND resource, the header,
1913 fontSize, fontID at each entry of FontAssociation table, and
1914 StyleMapping table.
1915 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001916
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000019172006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1918
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001919 Public API of TrueTypeGX, OpenType, and classic kern table validator
1920 should return `FT_Err_Unimplemented_Feature' if validation service
1921 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001922 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001923 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1924
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001925 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1926 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1927 unavailable.
1928 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1929 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001930
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001931 * src/base/ftotval.c (FT_OpenType_Validate): Return
1932 FT_Err_Unimplemented_Feature if OpenType validation service is
1933 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001934
Werner Lembergb10e45a2006-06-08 07:32:56 +000019352006-06-08 Werner Lemberg <wl@gnu.org>
1936
1937 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1938 errors.
1939
David Turner5f1f7502006-06-07 05:11:50 +000019402006-06-07 David Turner <david@freetype.org>
1941
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001942 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1943 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1944 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001945
David Turner457b4a82006-06-06 08:14:14 +000019462006-06-06 David Turner <david@freetype.org>
1947
Werner Lemberg4836f952006-06-06 12:54:08 +00001948 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001949
Werner Lemberg4836f952006-06-06 12:54:08 +00001950 We change `ps_unicodes_init' so that it also takes a
1951 `free_glyph_name' callback to release the glyph names returned by
1952 `get_glyph_name'
1953
1954 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1955 Renamed to ...
1956 (PS_GetGlyphNameFunc): This.
1957 (PS_FreeGlyphNameFunc): New typedef.
1958 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1959
1960 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1961 argument.
1962 (cff_sid_free_glyph_name): New function.
1963 (cff_cmap_unicode_init): Updated.
1964
1965 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1966
1967 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1968 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001969
1970
David Turner09717352006-06-04 14:33:08 +000019712006-06-04 David Turner <david@freetype.org>
1972
Werner Lembergd724f202006-06-04 15:17:41 +00001973 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1974 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001975 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001976
Werner Lembergd724f202006-06-04 15:17:41 +00001977 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1978 of `face->num_glyphs' which missed the last glyph, due to
1979 the offset-by-1 computation, since the PFR format doesn't
1980 guarantee that glyph index 0 corresponds to the `missing
1981 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001982
Werner Lemberg33779662006-05-26 06:30:05 +000019832006-05-25 Werner Lemberg <wl@gnu.org>
1984
1985 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1986 `-no-undefined'. Reported by Christian Biesinger.
1987
Werner Lemberg24773d62006-05-20 08:53:13 +000019882006-05-19 Brian Weed <bw@imaginengine.com>
1989
1990 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1991 have debug information, and debug libraries use `C7 compatible'
1992 debug info.
1993
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019942006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1995
Werner Lemberga6523a62006-05-20 08:47:01 +00001996 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001997 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001998
Werner Lemberga6523a62006-05-20 08:47:01 +00001999 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2000 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002001
2002 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002003 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002004
20052006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2006
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002007 * build/unix/configure.raw: Add a fallback to disable Carbon
2008 dependency, if configured with no options on Mac OS X.
2009
20102006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2011
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002012 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002013 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002014 the second part of Savannah bug #16590.
2015
Werner Lemberg545c4e52006-05-17 22:55:04 +000020162006-05-18 Werner Lemberg <wl@gnu.org>
2017
2018 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2019 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2020
David Turnerdc3ff312006-05-17 12:59:35 +000020212006-05-17 David Turner <david@freetype.org>
2022
Werner Lemberg545c4e52006-05-17 22:55:04 +00002023 This is a major patch used to drastically improve the performance of
2024 loading glyphs. This both speeds up loading the glyph vectors
2025 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002026
Werner Lemberg545c4e52006-05-17 22:55:04 +00002027 We now use inline assembler code with GCC to implement `FT_MulFix',
2028 which is probably the most important function related to the
2029 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002030
Werner Lemberg545c4e52006-05-17 22:55:04 +00002031 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002032
2033
Werner Lemberg545c4e52006-05-17 22:55:04 +00002034 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2035 `cursor' and `limit'.
2036
2037 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2038 New functions.
2039 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2040 [TEST]: Remove.
2041
2042 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2043 code.
2044
2045 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2046 `FT_ZERO'
2047 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2048 (af_glyph_hints_reload: Rewrite recognition of weak points.
2049
2050 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2051 constant values out of the loops.
2052
2053 * src/autofit/aftypes.h: Updated.
2054
2055 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2056
2057 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2058 product to get orientation.
2059
2060 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2061 (FT_Stream_OpenGzip): Use it to handle small files directly in
2062 memory.
2063
2064 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2065 Improve performance.
2066
2067 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2068 `limit'.
2069
2070 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2071 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2072 exceedingly large values of number of contours. Speed up by
2073 reducing the number of loops.
2074
2075 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2076
2077
2078 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2079 used to detect rogue clients from 4 to 16. This is to prevent some
2080 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2081 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002082
Werner Lembergde2d90a2006-05-17 08:54:30 +000020832007-05-17 Werner Lemberg <wl@gnu.org>
2084
2085 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002086 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002087
20882006-05-16 Werner Lemberg <wl@gnu.org>
2089
2090 * docs/PROBLEMS: Updated icl issues.
2091
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002092----------------------------------------------------------------------------
2093
Werner Lemberg42b63b22007-01-21 21:01:33 +00002094Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002095David Turner, Robert Wilhelm, and Werner Lemberg.
2096
2097This file is part of the FreeType project, and may only be used, modified,
2098and distributed under the terms of the FreeType project license,
2099LICENSE.TXT. By continuing to use, modify, or distribute this file you
2100indicate that you have read the license and understand and accept it
2101fully.
2102
2103
2104Local Variables:
2105version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002106coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002107End: