blob: d9bb6bc0d1be75bfa30e2c98f25ea0551e0126bd [file] [log] [blame]
Werner Lemberg5b591e42007-06-01 22:16:43 +000012007-06-02 Werner Lemberg <wl@gnu.org>
2
3 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
4 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
5
6 * src/bdf/bdflib.c (bdf_load_font): Use them.
7
8 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
9
Werner Lembergb9933f42007-06-01 21:27:12 +0000102007-06-01 Werner Lemberg <wl@gnu.org>
11
12 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
13 (FTC_CMapCache_Lookup): Remove unused code.
14
Werner Lembergc793d902007-06-01 20:51:11 +0000152007-06-01 Sean McBride <sean@rogue-research.com>
16
17 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
18 unused.
19
Werner Lembergbebc7b12007-06-01 06:32:30 +0000202007-06-01 Werner Lemberg <wl@gnu.org>
21
22 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
23 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +000024 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +000025
Werner Lembergcb37b3b2007-06-01 06:49:03 +000026 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
27 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
28
Werner Lembergba03af62007-05-30 13:57:02 +0000292007-05-30 Werner Lemberg <wl@gnu.org>
30
31 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
32 against too small binary data strings.
33
34 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
35
David Turnerf0cd69c2007-05-28 15:42:09 +0000362007-05-28 David Turner <david@freetype.org>
37
Werner Lemberg99e0c182007-05-29 07:00:23 +000038 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
39 transformation. This significantly reduces the loading time of CFF
40 glyphs.
David Turner552a9562007-05-28 15:45:35 +000041
Werner Lemberg99e0c182007-05-29 07:00:23 +000042 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +000043
Werner Lemberg99e0c182007-05-29 07:00:23 +000044 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
45 hinting script to CJK, since it works well with more scripts than
46 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
47 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +000048
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000492007-05-25 Werner Lemberg <wl@gnu.org>
50
51 * docs/CHANGES: Updated.
52
Werner Lemberg6ff2ff52007-05-24 19:39:14 +0000532007-05-24 Werner Lemberg <wl@gnu.org>
54
55 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
56 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
57
582007-05-24 Graham Asher <graham.asher@btinternet.com>
59
60 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
61 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
62
David Turner0d0365e2007-05-22 09:53:44 +0000632007-05-22 David Turner <david@freetype.org>
64
Werner Lemberg1c8980e2007-05-25 07:11:12 +000065 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
66 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +000067
Werner Lemberg1c8980e2007-05-25 07:11:12 +000068
69 Avoid heap blowup with very large .Z font files. This fixes
70 Savannah bug #19910.
71
72 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
73 `in_limit', `pad', `pad_bits', and `in_buff' members.
74 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
75 `buf_total' members.
76
77 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
78 only one argument.
79 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +000080
812007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +000082
83 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
84 (ps_dimension_set_mask_bits): Remove `const'.
85
David Turner0d0365e2007-05-22 09:53:44 +0000862007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +000087
88 * src/sfnt/ttmtx.c (tt_face_get_metrics)
89 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
90
Werner Lembergb826fa72007-05-19 07:18:48 +0000912007-05-19 Derek Clegg <dclegg@apple.com>
92
93 Savannah patch #5929.
94
95 * include/freetype/tttables.h, src/base/ftobjcs.c
96 (FT_Get_CMap_Format): New function.
97
98 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
99 `format' member.
100 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
101 cmap_info->format.
102
Werner Lemberg6f99c882007-05-19 07:01:49 +00001032007-05-19 Werner Lemberg <wl@gnu.org>
104
105 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
106 before handling subglyphs so that it can be reinitialized each time.
107 This fixes Savannah bug #19859.
108
Werner Lemberg95bc9d32007-05-16 15:19:42 +00001092007-05-16 Werner Lemberg <wl@gnu.org>
110
111 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
112 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
113 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
114 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
115 tt_face_get_metrics): Fix type-punning issues.
116
David Turner0a24bd22007-05-15 10:54:10 +00001172007-05-15 David Turner <david@freetype.org>
118
119 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000120 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
121 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000122 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000123 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000124
Werner Lemberg607dec72007-05-15 06:49:37 +00001252007-05-15 Graham Asher <graham.asher@btinternet.com>
126
127 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
128 variable.
129 * src/autofit/afloader.c (af_loader_load_g): Ditto.
130
131 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
132 (open_face_from_buffer): Initialize `stream'.
133 (FT_Request_Metrics): Remove unused variable.
134 Remove redundant `break' statements.
135 (FT_Get_Track_Kerning): Remove unused variable.
136
137 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
138 afm_parse_kern_data): Remove redundant
139 `break' statements.
140 (afm_parser_parse): Ditto.
141 Don't use uninitialized variables.
142
143 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
144 Use `|' operator instead of `^' to set it.
145 Update all users.
146
147 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
148 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
149
150 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
151 comparison.
152 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
153 (TT_Load_Glyph): Remove unused variable.
154
Werner Lemberg8d463a52007-05-13 16:01:55 +00001552007-05-13 Derek Clegg <dclegg@apple.com>
156
157 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
158 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
159
David Turner711cf842007-05-11 14:36:24 +00001602007-05-11 David Turner <david@freetype.org>
161
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000162 * src/cache/ftbasic.c, include/freetype/ftcache.h
163 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
164 functions that allow us to look up glyphs using an FTC_Scaler object
165 to specify the size, making it possible to use fractional pixel
166 sizes.
167
168 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
169 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000170
Werner Lemberg94be20e2007-05-09 20:02:55 +00001712007-05-09 Graham Asher <graham.asher@btinternet.com>
172
173 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
174 (af_latin_metrics_scale_dim): Fix compiler warnings.
175
Werner Lemberg41271032007-05-06 04:51:48 +00001762007-05-06 Werner Lemberg <wl@gnu.org>
177
178 * builds/win32/visualce/freetype.sln: Removed, as requested by
179 Vincent.
180
Werner Lembergdf49e692007-05-04 06:30:05 +00001812007-05-04 Vincent RICHOMME <richom.v@free.fr>
182
183 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
184 PC targets.
185
186 * docs/CHANGES: Document them.
187
1882007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000189
190 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
191 mmap (which might happen on some RTOS). From Savannah patch #5909.
192
Werner Lemberg106eaf12007-05-03 07:07:47 +00001932007-05-03 Werner Lemberg <wl@gnu.org>
194
195 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
196 * include/freetype/freetype.h (FT_Set_Char_Size): Update
197 documentation.
198
Werner Lemberg1b5267d2007-04-28 21:06:15 +00001992007-04-28 Victor Stinner <victor.stinner@inl.fr>
200
201 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
202 `cmap'.
203
Werner Lembergcc712a22007-04-27 17:16:50 +00002042007-04-27 Werner Lemberg <wl@gnu.org>
205
206 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
207 number of points in contours. Problem reported by Victor Stinner
208 <victor.stinner@haypocalc.com>.
209 (TT_Process_Simple_Glyph): Synchronize variable types.
210
Werner Lemberg45bb18f2007-04-26 06:26:35 +00002112007-04-26 Werner Lemberg <wl@gnu.org>
212
213 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
214 zero in case of error. This fixes Savannah bug #19689.
215
David Turnera8b45e62007-05-11 14:10:30 +00002162007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
217
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000218 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
219 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000220
Werner Lembergfcc1f472007-04-10 11:51:50 +00002212007-04-10 Martin Horak <horakm@centrum.cz>
222
223 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
224 Ignore `hhea' table. This fixes Savannah bug #19261.
225
Werner Lemberg14bf82e2007-04-10 04:09:49 +00002262007-04-09 Werner Lemberg <wl@gnu.org>
227
228 * Version 2.3.4 released.
229 =========================
230
231
232 Tag sources with `VER-2-3-4'.
233
234 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
235 version number to 2.3.4.
236
237 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
238 builds/win32/visualc/freetype.dsp,
239 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
240
241 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
242
243 * builds/unix/configure.raw (version_info): Set to 9:15:3.
244
Werner Lembergf4a52a62007-04-09 08:40:11 +00002452007-04-09 Martin Horak <horakm@centrum.cz>
246
247 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
248 memory stream to avoid a crash with the incremental memory
249 interface (Savannah bug #19260).
250
David Turner1dcb4442007-04-06 08:19:04 +00002512007-04-06 David Turner <david@freetype.org>
252
Werner Lembergc81cf612007-04-06 09:28:23 +0000253 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
254 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000255
Werner Lemberg9f83e052007-04-05 02:28:23 +00002562007-04-04 Werner Lemberg <wl@gnu.org>
257
258 * Version 2.3.3 released.
259 =========================
260
261
262 Tag sources with `VER-2-3-3'.
263
264 * docs/CHANGES: Mention CVE-2007-1351.
265
David Turner7338ec22007-04-03 14:30:34 +00002662007-04-03 David Turner <david@freetype.org>
267
268 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000269 if one of the resolution values is 0, treat it as if it were the
270 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000271
David Turnere6472c12007-04-02 13:13:54 +00002722007-04-02 David Turner <david@freetype.org>
273
Werner Lemberg94f12272007-04-03 07:19:53 +0000274 Add special code to detect `extra-light' fonts and do not snap their
275 stem widths too much to avoid bizarre hinting effects.
276
277 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
278 `extra_light' members.
279
280 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
281 them.
282 (af_latin_metrics_scale_dim): Set `extra_light'.
283 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000284
David Turner3f539692007-03-28 14:53:40 +00002852007-03-28 David Turner <david@freetype.org>
286
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000287 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000288 padding.
289
Werner Lemberga08b2172007-03-28 07:17:17 +00002902007-03-28 Werner Lemberg <wl@gnu.org>
291
292 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
293 gracefully.
294 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000295 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000296 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
297 number of code points in Unicode.
298
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000299 * builds/win32/visualc/index.html,
300 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000301 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000302 s/232/233/.
303
304 * docs/CHANGES: Mention ftdiff.
305
David Turner3b242d32007-03-26 12:03:04 +00003062007-03-26 David Turner <david@freetype.org>
307
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000308 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
309 corresponding code.
310 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000311
Werner Lemberga08b2172007-03-28 07:17:17 +0000312 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000313 computations in order to ignore single-point contours. These are
314 never rasterized and correspond in certain fonts to mark-attach
315 points that are very far from the glyph's real outline, ruining the
316 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000317
Werner Lemberga08b2172007-03-28 07:17:17 +0000318 * src/autofit/afloader.c (af_loader_load_g): In the case of
319 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
320 Otherwise code that uses them will most certainly ruin the fixed
321 advance property.
David Turner23553d62007-03-26 13:37:17 +0000322
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000323 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
324 documentation and bump version number to 2.3.3.
325
326 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
327
328 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000329
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00003302007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
331
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000332 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
333 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000334 * builds/vms/ftconfig.h: Ditto.
335 * include/freetype/config/ftconfig.h: Ditto.
336
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00003372007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
338
Werner Lemberg14ffe092007-03-22 06:12:43 +0000339 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
340 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000341 proposed by Sean McBride:
342 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
343
3442007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
345
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000346 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
347 setjmp, proposed by Sean McBride:
348 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
349
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00003502007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
351
Werner Lembergc9f6c662007-03-21 13:30:14 +0000352 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
353 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
354 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000355
David Turner74c34eb2007-03-18 07:19:31 +00003562007-03-18 David Turner <david@freetype.org>
357
Werner Lembergc9f6c662007-03-21 13:30:14 +0000358 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
359 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000360
Werner Lembergc9f6c662007-03-21 13:30:14 +0000361 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000362
David Turner89020d92007-03-17 17:48:57 +00003632007-03-17 David Turner <david@freetype.org>
364
Werner Lembergc9f6c662007-03-21 13:30:14 +0000365 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
366 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000367
Werner Lemberg25d592a2007-03-09 07:59:35 +00003682007-03-09 Werner Lemberg <wl@gnu.org>
369
370 * Version 2.3.2 released.
371 =========================
372
373
374 Tag sources with `VER-2-3-2'.
375
376 * builds/win32/visualc/index.html,
377 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000378 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000379 s/231/232/.
380
David Turner3a51afa2007-03-08 10:50:38 +00003812007-03-08 David Turner <david@freetype.org>
382
Werner Lemberg25d592a2007-03-09 07:59:35 +0000383 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000384
Werner Lemberg25d592a2007-03-09 07:59:35 +0000385 * builds/unix/configure.raw (version_info): Set to 9:13:3.
386
387 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
388
389 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000390
Werner Lemberg1e259de2007-03-08 15:39:21 +0000391 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
392 function to work properly, over-writing user-provided buffers in
393 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000394
David Turner121cad52007-03-08 16:43:50 +0000395
Werner Lemberg3d92f082007-03-06 11:59:24 +00003962007-03-05 Werner Lemberg <wl@gnu.org>
397
398 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
399 macro for `strstr'.
400
401 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
402 `trick_names', as suggested by Ivan Nincic.
403
David Turner085bc6e2007-03-05 17:40:03 +00004042007-03-05 David Turner <david@freetype.org>
405
Werner Lembergd112cf02007-03-06 12:06:56 +0000406 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
407 case FT_Init_FreeType fails for some reason. Problem reported by
408 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000409
Werner Lembergd112cf02007-03-06 12:06:56 +0000410 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
411 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
412 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
413 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000414
Werner Lembergd112cf02007-03-06 12:06:56 +0000415 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
416 signed values, not unsigned ones. Problem reported by Johannes
417 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000418
David Turner601aefe2007-02-21 16:47:49 +00004192007-02-21 David Turner <david@freetype.org>
420
Werner Lembergde5e6862007-02-25 21:06:43 +0000421 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
422 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000423
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00004242007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
425
426 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
427 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
428 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
429
Werner Lemberga0915172007-02-16 08:12:50 +00004302007-02-16 Werner Lemberg <wl@gnu.org>
431
432 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
433 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
434
David Turner2c4500e2007-02-14 15:08:47 +00004352007-02-14 David Turner <david@freetype.org>
436
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000437 It seems that the following changes fix most of the known
438 interpreter problems with my fonts, but more testing is needed,
439 though.
440
441 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
442 (TT_MulFix14): Rewrite.
443 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
444 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000445
Werner Lembergc6a14082007-02-12 22:08:15 +00004462007-02-12 Werner Lemberg <wl@gnu.org>
447
448 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
449 warnings.
450
451 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
452 (bdf_interpret_style): Ditto.
453
David Turnerc0f9c4a2007-02-12 14:55:03 +00004542007-02-12 David Turner <david@freetype.org>
455
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000456 Simplify projection and dual-projection code interface.
457
Werner Lemberg406d25f2007-02-12 22:01:18 +0000458 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
459 FT_Vector' as argument type.
460 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
461 Updated.
462 (CUR_fast_project, CUR_fast_dualproj): New macros.
463 (Project, Dual_Project, Project_x, Project_y): Updated.
464 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
465 macros.
466
467
468 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
469 adjustments for the non-light auto-hinted modes. Gets rid of
470 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000471
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000472 * src/autofit/aflatin.c (af_latin_hints_link_segments,
473 af_latin_hints_compute_edges): Slight optimization of the segment
474 linker and better handling of serif segments to get rid of broken
475 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000476
David Turnerc0f9c4a2007-02-12 14:55:03 +0000477
Werner Lemberg442bfb82007-02-12 21:44:10 +0000478 Introduce new string functions and the corresponding macros to get
479 rid of various uses of strcpy and other `evil' functions, as well as
480 to simplify a few things.
481
482 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
483 ft_mem_strcpyn): New declarations.
484 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
485 macros.
486 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
487 functions.
488
489 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
490 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
491 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
492 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
493 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
494 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
495 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
496 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000497
Werner Lemberg406d25f2007-02-12 22:01:18 +0000498 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
499
Werner Lemberg582067d2007-02-11 15:03:05 +00005002007-02-11 Werner Lemberg <wl@gnu.org>
501
502 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
503 non-spacing glyphs.
504
Werner Lemberg8f474532007-02-07 08:31:01 +00005052007-02-07 Tom Parker <palfrey@tevp.net>
506
507 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
508 pointer.
509
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005102007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
511
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000512 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
513 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000514 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000515 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
516 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
517 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
518 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000519
520 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
521 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000522 * builds/mac/ftmac.c: Ditto.
523
5242007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
525
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000526 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000527 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000528 #include <ftmac.c>.
529
5302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
531
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000532 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
533 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
534 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
535 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
536 FT_GetFilePath_From_Mac_ATS_Name.
537 * builds/mac/ftmac.c: Ditto.
538
5392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
540
Werner Lembergdcbb7082007-02-08 08:54:09 +0000541 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000542 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
543 for passing to FT_New_Face_From_FSSpec.
544
5452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
546
Werner Lembergdcbb7082007-02-08 08:54:09 +0000547 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000548 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000549
550 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
551 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000552 * builds/mac/ftmac.c (OS_INLINE): Ditto.
553
Werner Lemberg313d7772007-02-01 08:10:45 +00005542007-02-01 Werner Lemberg <wl@gnu.org>
555
556 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
557 Explain why applications shouldn't use it. Found by Alexei.
558
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00005592007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000560
561 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
562 message.
563
564 * src/gxvalid/gxvmort1.c
565 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
566 message.
567
Werner Lemberg53935932007-01-31 08:53:02 +00005682007-01-31 Werner Lemberg <wl@gnu.org>
569
570
571 * Version 2.3.1 released.
572 =========================
573
574
575 Tag sources with `VER-2-3-1-FINAL'.
576
577 * builds/win32/visualc/freetype.dsp,
578 builds/win32/visualc/freetype.vcproj: s/230/231/.
579 * builds/win32/visualc/index.html: s/221/231/.
580
581 * vms_make.com: Add `ftgasp'.
582
David Turnera7ee6082007-01-30 10:33:53 +00005832007-01-30 David Turner <david@freetype.org>
584
Werner Lemberg53935932007-01-31 08:53:02 +0000585 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000586
Werner Lemberg53935932007-01-31 08:53:02 +0000587 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000588
Werner Lemberg25d592a2007-03-09 07:59:35 +0000589 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000590 s/2.3.0/2.3.1/.
591
592 * builds/unix/configure.raw (version_info): Set to 9:12:3.
593
594
595 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
596 (af_loader_load_g): Disable the warper (i.e., the light hinting
597 improvements) to make a 2.3.1 bugfix release before introducing a
598 new feature. This should give us more time to tune and improve the
599 warper for the next release.
600
601 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000602
David Turnerd91eebd2007-01-26 15:05:41 +00006032007-01-25 David Turner <david@freetype.org>
604
Werner Lembergbf241762007-01-26 16:08:49 +0000605 For light auto-hinting, improve glyph advance widths and resurrect
606 normal/full hinting to its normal quality.
607
608 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
609 and `xmax_delta'.
610 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
611 and `xmax_delta'.
612
613 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
614 preprocessor conditional with if-clause, handling both light and
615 normal mode.
616
617 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
618 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000619
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00006202007-01-25 Werner Lemberg <wl@gnu.org>
621
622 * docs/release: Updated -- Savannah uses a new uploading scheme.
623
David Turnera42567b2007-01-25 12:23:37 +00006242007-01-25 David Turner <david@freetype.org>
625
Werner Lembergd7855662007-01-25 13:53:56 +0000626 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000627
Werner Lembergd7855662007-01-25 13:53:56 +0000628 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
629 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
630 functions.
David Turnera42567b2007-01-25 12:23:37 +0000631
Werner Lembergd7855662007-01-25 13:53:56 +0000632 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000633
Werner Lembergb1be9e82007-01-25 11:50:00 +00006342007-01-25 Werner Lemberg <wl@gnu.org>
635
636 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000637 correctly in a sanity check. Since this function is only used to
638 load local and global functions, any charstring that called the last
639 local/global function would fail otherwise. This fixes Savannah bug
640 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000641
642 * docs/CHANGES: Document it.
643
David Turnerb6de8d12007-01-23 15:51:50 +00006442007-01-23 David Turner <david@freetype.org>
645
Werner Lembergb1be9e82007-01-25 11:50:00 +0000646 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
647 prevented compilation when disabling both the unpatented and the
648 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000649
Werner Lembergb1be9e82007-01-25 11:50:00 +0000650
651 Fix and enable the warper to improve `light' hinting mode. This is
652 not necessarily a final version, but it seems to work well.
653
654 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
655 Disable code.
656 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
657 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
658
659 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
660 (af_warper_compute_line_best): Fix array size of `scores'.
661 (af_warper_compute): Better handling of border cases.
662 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
663 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000664
Werner Lemberg011d1112007-01-21 09:36:00 +00006652007-01-21 Werner Lemberg <wl@gnu.org>
666
Werner Lemberg42b63b22007-01-21 21:01:33 +0000667 * ChangeLog: Split off older entries into...
668 * ChangeLog.22: This new file.
669
6702007-01-21 Werner Lemberg <wl@gnu.org>
671
Werner Lemberg555258f2007-01-21 09:46:37 +0000672 * docs/CHANGES: Document SHZ fix.
673
6742007-01-21 George Williams <gww@silcom.com>
675
676 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
677 points.
678
6792007-01-21 Werner Lemberg <wl@gnu.org>
680
Werner Lemberg011d1112007-01-21 09:36:00 +0000681 * src/sfnt/ttmtx.c (tt_face_get_metrics)
682 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
683
Werner Lemberg87a5a432007-01-17 12:44:39 +00006842007-01-17 Werner Lemberg <wl@gnu.org>
685
Werner Lembergb8003292007-01-17 12:56:25 +0000686
687 * Version 2.3.0 released.
688 =========================
689
690
691 Tag sources with `VER-2-3-0-FINAL'.
692
6932007-01-17 Werner Lemberg <wl@gnu.org>
694
Werner Lemberg87a5a432007-01-17 12:44:39 +0000695 * docs/release: Updated.
696
David Turner22122722007-01-16 20:06:44 +00006972007-01-16 David Turner <david@freetype.org>
698
Werner Lemberg87a5a432007-01-17 12:44:39 +0000699 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
700 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
701 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
702 warnings.
David Turner22122722007-01-16 20:06:44 +0000703
Werner Lemberg267e1d72007-01-15 07:48:09 +00007042007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
705
706 * builds/amiga/makefile, builds/amiga/makefile.os4,
707 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
708
709 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
710
Werner Lemberg8c4120d2007-01-15 06:42:40 +00007112007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
712
713 Fix various compiler warnings.
714
715 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
716 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
717 s/index/strike_index/.
718 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
719
720 * src/gxvalid/gxvmorx5.c
721 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
722
723 * src/truetype/ttinterp.c (Compute_Point_Displacement),
724 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
725 uninitialized variables.
726
Werner Lemberg6164a9d2007-01-13 23:01:36 +00007272007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
728
729 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
730
Werner Lemberg281c1482007-01-13 22:50:51 +00007312007-01-13 Werner Lemberg <wl@gnu.org>
732
733 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
734 versions up to 0x3FF without complaining.
735
Werner Lembergac250b22007-01-13 14:01:36 +00007362007-01-13 Derek Clegg <dclegg@apple.com>
737
738 Add FT_Get_PS_Font_Info interface to CFF driver.
739
740 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
741 (CFF_FontRec): Add `font_info' field.
742
743 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
744 (cff_font_done): Free font->font_info if necessary.
745
746 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
747 (cff_service_ps_info): Register cff_ps_get_font_info.
748
Werner Lemberg23df31a2007-01-13 08:45:00 +00007492007-01-13 Werner Lemberg <wl@gnu.org>
750
751 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
752 with C++ compiler.
753
754 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
755 af_glyph_hints_dump_edges): Ditto.
756
757 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
758 `modules.cfg').
759
760 * src/sfnt/ttsbit0.h: Remove.
761
762 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
763
Werner Lemberg27cf9de2007-01-13 07:34:23 +00007642007-01-12 David Turner <david@freetype.org>
765
766 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
767 bug in the bitmap emboldener if the pitch of the source bitmap is
768 much larger than its width.
769
770 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
771 compilation warning.
772
Werner Lemberg6d96d312007-01-12 10:30:19 +00007732007-01-12 Werner Lemberg <wl@gnu.org>
774
775 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
776 `automake' CVS module from sources.redhat.com.
777
Werner Lemberg17432b52007-01-12 09:28:44 +00007782007-01-11 Werner Lemberg <wl@gnu.org>
779
780 * src/type1/t1load.c (is_space): Removed.
781 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
782 (parse_charstrings): Use IS_PS_TOKEN.
783
784
785 * autogen.sh: Avoid bash specific syntax.
786
David Turner038ace22007-01-11 15:00:59 +00007872007-01-11 David Turner <david@freetype.org>
788
Werner Lemberg17432b52007-01-12 09:28:44 +0000789 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000790
Werner Lemberg17432b52007-01-12 09:28:44 +0000791 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000792
Werner Lemberg17432b52007-01-12 09:28:44 +0000793 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
794 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000795 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000796
Werner Lemberg17432b52007-01-12 09:28:44 +0000797 * autogen.sh: Small fix to get it working on Mac OS X properly:
798 The issue is that GNU libtool is called `glibtool' on this platform,
799 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000800
David Turner2628ea92007-01-10 13:15:56 +00008012007-01-10 David Turner <david@freetype.org>
802
Werner Lemberg17432b52007-01-12 09:28:44 +0000803 * all-sources: Tag all sources with VER-2-3-0-RC1 and
804 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000805
Werner Lemberg17432b52007-01-12 09:28:44 +0000806 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
807 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
808 version number to 2.3.0.
809
810 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
811 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000812
813 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000814 include/freetype/ftlcdfil.h: Update reference documentation with
815 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000816
Werner Lemberg17432b52007-01-12 09:28:44 +0000817 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
818 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000819
Werner Lembergbf02d392007-01-10 07:07:37 +00008202007-01-10 Derek Clegg <dclegg@apple.com>
821
822 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
823 values.
824
David Turnerf48b60e2007-01-08 15:15:32 +00008252007-01-08 David Turner <david@freetype.org>
826
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000827 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000828
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000829 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
830 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000831 corresponding to a given character pixel size.
832
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000833 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
834 `gasp' table, in order to avoid potential problems with later
835 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000836
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000837 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
838 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000839
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000840 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
841 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
842 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
843 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000844
Werner Lemberge6b6f372007-01-07 00:06:47 +00008452007-01-07 Werner Lemberg <wl@gnu.org>
846
Werner Lembergb8004d22007-01-07 09:13:38 +0000847 * src/cid/cidparse.c (cid_parser_new): Improve error message for
848 Type 11 fonts.
849 Scan for `/sfnts' token.
850
8512007-01-07 Werner Lemberg <wl@gnu.org>
852
853 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000854
Werner Lembergbe5f7972007-01-06 07:51:48 +00008552007-01-06 Werner Lemberg <wl@gnu.org>
856
857 * src/cff/cffload.c (cff_index_init): Remove unused variable.
858 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
859
David Turnera8cf42b2007-01-04 16:46:46 +00008602007-01-04 David Turner <david@freetype.org>
861
Werner Lembergf6294392007-01-06 07:47:45 +0000862 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
863 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000864
Werner Lembergf6294392007-01-06 07:47:45 +0000865
866 Do not allocate interpreter-specific tables in memory if we are not
867 going to load glyphs with the bytecode interpreter anyway.
868
869 * src/truetype/ttgload.c (tt_loader_init): Load execution context
870 only if glyph is hinted.
871 Updated.
872 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
873 and `cvs_ready'.
874 Add `tt_size_ready_bytecode' declaration.
875 * src/truetype/ttobjs.c (tt_size_done_bytecode,
876 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
877 (tt_size_init): Move most code into `tt_size_init_bytecode'.
878 (tt_size_done): Move most code into `tt_size_done_bytecode'.
879 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000880
David Turner91a34022007-01-05 14:47:08 +0000881
Werner Lembergf6294392007-01-06 07:47:45 +0000882 Don't extract the metrics table from the SFNT font file. Instead,
883 reparse it on each glyph load. The runtime difference is not
884 noticeable, and it can save a lot of heap memory when memory-mapped
885 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000886
Werner Lembergf6294392007-01-06 07:47:45 +0000887 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
888 `horz_metrics_offset' and `vert_metrics_ofset'.
889 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
890 Updated.
891
892
893 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
894
895
896 Do not load the CFF index offsets into memory, since this wastes a
897 *lot* of heap memory with large Asian CFF fonts. There is no
898 significant performance loss.
899
900 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
901 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
902 `data_size'.
903 (CFF_CharsetRec): Add field `num_glyphs'.
904
905 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
906 cff_charset_cid_to_gindex): New functions.
907 (cff_new_index): Renamed to...
908 (cff_index_init): This. Update all callers.
909 Updated -- some code has been moved to `cff_index_load_offsets'.
910 (cff_done_index): Renamed to...
911 (cff_index_done): This. Update all callers.
912 (cff_index_get_pointers, cff_index_access_element): Updated to use
913 stream offsets.
914 (cff_charset_compute_cids): Set `num_glyphs' field.
915 (cff_encoding_load): Updated.
916
917 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000918
9192007-01-04 David Turner <david@freetype.org>
920
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000921 * docs/INSTALL.UNIX: Simplify some parts, add reference to
922 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000923
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000924 * README.CVS: Add common problem description and solution
925 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000926
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000927 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000928
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000929 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000930
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000931 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000932
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000933 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
934 (TWorker): This.
935 Remove `count_table' and `memory'.
936 Make `grays' a pointer.
937 (TRaster): New structure.
938 (count_table): New static array.
939 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
940 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
941 ft_black_set_mode, ft_black_render): Updated.
942 (ft_black_init): Don't initialize `count_table'.
943 (ft_black_reset): Use the render pool. This saves about 6KB of
944 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000945
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000946 * src/smooth/ftgrays.c (TRaster): Replaced with...
947 (TWorker): This.
948 Remove `memory'.
949 (TRaster): New structure.
950
951 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
952 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
953 gray_render_span, gray_raster_render): Updated.
954 (gray_raster_reset): Use the render pool. This saves about 6KB of
955 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000956
David Turner8a6c44e2007-01-04 17:03:11 +0000957 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
958 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000959 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
960 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
961 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000962
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000963 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
964 Remove a typo that results in no hinting and a memory leak with some
965 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000966
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000967 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000968 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000969 CFF_Faces in it. We need to close all faces before destroying the
970 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000971
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00009722007-01-02 Werner Lemberg <wl@gnu.org>
973
974 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
975 Remove compiler warning.
976
David Turner9207e002007-01-02 16:58:13 +00009772007-01-02 David Turner <david@freetype.org>
978
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000979 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000980
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00009812006-12-31 Masatake YAMATO <jet@gyve.org>
982
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000983 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
984 function.
985 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000986 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000987 `gxv_kern_subtable_fmt0_pairs_validate'.
988
David Turner115b4422006-12-22 11:37:05 +00009892006-12-22 David Turner <david@freetype.org>
990
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000991 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
992 warnings.
David Turner115b4422006-12-22 11:37:05 +0000993
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000994 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
995 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000996
Werner Lemberg4755bf72006-12-16 08:58:44 +00009972006-12-16 Anders Kaseorg <anders@kaseorg.com>
998
999 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1000 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1001
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000010022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1003
Werner Lemberg9b774e22007-01-16 06:11:27 +00001004 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001005 sync with the modification by Jens Claudius on 2006-08-22; cf.
1006 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 +00001007
10082006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1009
1010 * src/base/ftmac.c: Specialized for Mac OS X only.
1011 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1012 * builds/unix/configure.raw: Ditto. When explicit switches for
1013 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1014 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1015
10162006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1017
1018 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1019 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1020 instead of src/base/ftmac.c
1021 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1022 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1023 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1024 that cannot be built at present.
1025
10262006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1027
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001028 * src/base/ftobjs.c: Improvement of resource fork handler for
1029 POSIX, cf.
1030 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001031 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1032 format or .dfont, to simulate the face index number counted by ftmac.c.
1033 (IsMacResource): Return the number of scalable faces correctly.
1034
Werner Lembergec5b4502006-12-10 07:51:38 +000010352006-12-10 Werner Lemberg <wl@gnu.org>
1036
1037 * builds/toplevel.mk (version): Protect against `distclean' target.
1038
Werner Lembergb26b3142006-12-09 20:01:43 +000010392006-12-09 Werner Lemberg <wl@gnu.org>
1040
1041 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1042 or `type'.
1043
1044 * builds/freetype.mk (version): Extracted from freetype.h, using
1045 GNU make's built-in string functions.
1046 (refdoc): Use $(version) instead of static version number.
1047
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000010482006-12-08 Werner Lemberg <wl@gnu.org>
1049
1050 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1051
Werner Lemberg15c29502006-12-09 07:29:54 +000010522006-12-08 Vladimir Volovich <vvv@vsu.ru>
1053
1054 * src/tools/apinames (State): Remove final comma in structure -- xlc
1055 v5 under AIX 4.3 doesn't like this.
1056
David Turnerdbf3b432006-12-07 21:18:09 +000010572006-12-07 David Turner <david@freetype.org>
1058
Werner Lemberg256a3512006-12-08 06:49:33 +00001059 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1060 to the spacing of auto-fitted glyphs. This only impacts rare
1061 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001062
Werner Lemberg11171312006-12-03 09:43:40 +000010632006-12-03 Werner Lemberg <wl@gnu.org>
1064
1065 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1066
Werner Lemberg960ba592006-12-01 08:20:47 +000010672006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001068
Werner Lemberg960ba592006-12-01 08:20:47 +00001069 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1070 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1071 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001072
David Turner80658e52006-11-28 08:09:20 +00001073
Werner Lemberg960ba592006-12-01 08:20:47 +00001074 * include/freetype/ftxf86.h: Fix and extend comment so that it
1075 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001076
Werner Lemberg960ba592006-12-01 08:20:47 +00001077 * include/freetype/ftchapters.h: Add `font_format' section.
1078
1079
1080 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1081 to TOC in index page.
1082
10832006-11-28 David Turner <david@freetype.org>
1084
1085 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1086 trying to render into a zero-width/height bitmap, not an error code.
1087
1088 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1089
1090 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1091 ones instead.
1092
1093 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1094 variable.
David Turner80658e52006-11-28 08:09:20 +00001095
Werner Lemberg8636c292006-11-26 22:28:13 +000010962006-11-26 Pierre Hanser <hanser@club-internet.fr>
1097
1098 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1099
Werner Lemberg960ba592006-12-01 08:20:47 +000011002006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001101
Werner Lemberg960ba592006-12-01 08:20:47 +00001102 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1103 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1104 Add stubs to link the `ftgrid' test program when debugging is
1105 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001106
Werner Lemberg960ba592006-12-01 08:20:47 +000011072006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001108
1109 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001110 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1111
1112 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1113 Emit more sensible information.
1114
1115 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1116
1117 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1118 rounding of blue values.
1119 (af_latin_hints_compute_segments): Hint segment heights.
1120 (af_latin_hints_link_segments): Reduce `len_score' value.
1121 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1122 value and use `height' member for comparisons.
1123 (af_latin_hint_edges): Extend logging message.
1124 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001125
Werner Lemberg91959bf2006-11-22 10:36:55 +000011262006-11-22 Werner Lemberg <wl@gnu.org>
1127
1128 Fix Savannah bug #15553.
1129
1130 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1131 program after a change from mono to grayscaling (and vice versa).
1132 Use correct constant for comparison to get `exec->grayscale'.
1133
Werner Lemberg913a3652006-11-19 09:19:17 +000011342006-11-18 Werner Lemberg <wl@gnu.org>
1135
1136 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001137 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001138 This patch fixes Savannah bug #18301.
1139
1140 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1141 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1142 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1143 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1144 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1145 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1146 (FNT_Load_Glyph): Check validity of `glyph_index'.
1147
David Turner7bab6ae2006-11-13 11:25:06 +000011482006-11-13 David Turner <david@freetype.org>
1149
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001150 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1151 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001152
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001153 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1154 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1155 when building the library to change the default LCD filter to be
1156 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001157
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001158 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001159
David Turner8765c712006-11-10 16:49:42 +000011602006-11-10 David Turner <david@freetype.org>
1161
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001162 * src/smooth/ftsmooth.c: API change for the LCD
1163 filter. The FT_LcdFilter value is an enumeration describing which
1164 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1165 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1166 algorithm which produces strong color fringes for everything
1167 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001168
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001169 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1170 second parameter to an enum type.
1171
1172 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1173 (_ft_lcd_filter): Rename to...
1174 (_ft_lcd_filter_fir): This.
1175 Update parameters.
1176 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1177 (FT_Library_Set_LcdFilter): Update parameters.
1178 Handle new filter modes.
1179
1180 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1181 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1182 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1183 callback and update other fields.
1184
1185 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1186 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1187 Other minor improvements.
1188
1189 * src/autofit/aflatin.c: Various tiny improvements that drastically
1190 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1191 (af_latin_hints_compute_edges): Fix typo.
1192 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001193
David Turner4e9cc3c2006-11-09 16:31:52 +000011942006-11-09 David Turner <david@freetype.org>
1195
Werner Lemberg49c77a82006-11-09 21:51:57 +00001196 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1197 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001198
Werner Lemberg5e430892006-11-07 09:35:03 +000011992006-11-07 Zhe Su <james.su@gmail.com>
1200
1201 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1202 also.
1203
Werner Lemberg111b5ae2006-11-03 09:40:12 +000012042006-11-03 Werner Lemberg <wl@gnu.org>
1205
1206 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1207
David Turner40604742006-11-02 16:37:35 +000012082006-11-02 David Turner <david@freetype.org>
1209
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001210 Add a few tweaks to better handle serif fonts.
1211 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001212
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001213 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1214 segments that are less than 1.5 pixels high. This gets rid of
1215 *many* corner cases with serifs.
1216 (af_latin_align_linked_edge): Add logging message.
1217 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1218 Add logging messages.
1219 Handle AF_EDGE_FLAG flag specially.
1220
1221 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1222 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1223
1224 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1225 Update external declarations.
1226 (af_corner_orientation, af_corner_is_flat): Replaced by...
1227
1228 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1229 ft_corner_is_flat): These declarations.
1230
1231 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1232 Comment out. Replaced by...
1233
1234 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1235 These functions. Update all callers.
1236 (FT_Add64) [!FT_LONG64]: Simplify.
1237
1238 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1239 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1240 production of garbage by missing lots of segments.
1241
1242 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1243
1244 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1245 [AF_DEBUG]: Set _af_debug_hints.
1246
1247
1248 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1249 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1250 and ft_corner_orientation.
1251
1252
1253 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001254
Werner Lemberge88c5262006-10-24 05:46:26 +000012552006-10-24 Werner Lemberg <wl@gnu.org>
1256
1257 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1258
1259 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1260 as argument.
1261
David Turnera1861392006-10-23 16:00:59 +000012622006-10-23 Zhe Su <zsu@novell.com>
1263
Werner Lemberg715e96e2006-10-24 05:28:45 +00001264 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1265 better deal with broken Asian fonts with strange glyphs, having
1266 self-intersections and other peculiarities. The used algorithm is
1267 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001268
David Turnere140f142006-10-23 08:56:57 +000012692006-10-23 David Turner <david@freetype.org>
1270
Werner Lemberg715e96e2006-10-24 05:28:45 +00001271 Speed up the CFF font loader. With some large CFF fonts,
1272 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001273
Werner Lemberg715e96e2006-10-24 05:28:45 +00001274 * src/cff/cffload.c (cff_get_offset): Removed.
1275 (cff_new_index): Inline functionality of `cff_get_offset'.
1276 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1277 (cff_charset_done): Call `cff_charset_free_cids'.
1278 (cff_charset_load): Call `cff_charset_compute_cids'.
1279 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1280
1281 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1282 with FT_NEXT_XXX.
1283
1284
1285 Speed up the Postscript hinter, with more than 100% speed increase
1286 on my machine.
1287
1288 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1289 psh_corner_orientation): New functions.
1290 (psh_glyph_compute_inflections): Merge loops for efficiency.
1291 Use `psh_corner_orientation'.
1292 (psh_glyph_init): Use `psh_corner_is_flat'.
1293 (psh_hint_table_find_strong_point): Renamed to...
1294 (psh_hint_table_find_strong_points): This.
1295 Rewrite, adding argument to handle all points at once.
1296 Update all callers.
1297 (PSH_MAX_STRONG_INTERNAL): New macro.
1298 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001299
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000013002006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1301
1302 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001303 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001304
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000013052006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1306
1307 * docs/INSTALL.CROSS: New document file for cross-building.
1308
1309 * builds/unix/configure.raw: Preliminary cross-building support.
1310 Find native C compiler and pass it by CC_BUILD, and
1311 find suffix for native executable and pass it by EXEEXT_BUILD.
1312 Also suffix for target executable is passed by EXEEXT.
1313
Werner Lembergb9e6d692006-10-15 08:58:40 +00001314 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1315 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001316 CC_BUILD and EXEEXT_BUILD.
1317
Werner Lembergb9e6d692006-10-15 08:58:40 +00001318 * builds/exports.mk (APINAMES_EXE): Change the extension for
1319 apinames from the suffix for target (E) to that for building host
1320 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001321
Werner Lemberg82a07e92006-10-12 06:20:44 +000013222006-10-12 Werner Lemberg <wl@gnu.org>
1323
1324 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1325 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1326 which reference those files.
1327
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000013282006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1329
Werner Lembergb9e6d692006-10-15 08:58:40 +00001330 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1331 embedded in freetype2.pc and freetype-config. Use it to record
1332 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001333
1334 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1335
1336 * builds/unix/freetype-config.in: Ditto.
1337
Werner Lemberg28e17d92006-10-11 17:27:47 +000013382006-10-11 Werner Lemberg <wl@gnu.org>
1339
1340 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1341 development.
1342
Jens Claudius336d2292006-10-03 08:53:37 +000013432006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1344
1345 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1346 argument to ft_setjmp.
1347
1348 * include/freetype/internal/ftvalid.h: Add comment that
1349 ft_validator_run must not be used.
1350
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013512006-10-01 Werner Lemberg <wl@gnu.org>
1352
1353 * src/base/ftbase.c: Undo change from 2006-09-30.
1354
1355 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1356
13572006-09-30 David Turner <david@freetype.org>
1358
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001359 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1360 s/unpatented_hinting/ignore_unpatented_hinter/.
1361 Update all callers.
1362
1363 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1364 auto-hinting shall be used or not.
1365
1366 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001367
Werner Lemberg2863cfa2006-10-01 17:04:00 +000013682006-09-30 Werner Lemberg <wl@gnu.org>
1369
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001370 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1371 in use).
1372
1373 * src/base/ftbase.c: Include `ftlcdfil.c'.
1374
Werner Lemberg9b15ea32006-09-29 18:22:11 +000013752006-09-29 Werner Lemberg <wl@gnu.org>
1376
1377 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1378 overlapping segments. Bug reported by Stefan Koch.
1379
David Turnerad830712006-09-27 16:20:59 +000013802006-09-28 David Turner <david@freetype.org>
1381
Werner Lemberg2c002e12006-09-29 21:31:53 +00001382 Fix a bug in the automatic unpatented hinting support which prevents
1383 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001384
Werner Lemberg2c002e12006-09-29 21:31:53 +00001385 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1386 s/force_autohint/unpatented_hinting/. Update all callers.
1387
1388 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1389
1390 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001391
David Turner8a317cf2006-09-27 07:52:48 +000013922006-09-27 David Turner <david@freetype.org>
1393
Werner Lemberg2c002e12006-09-29 21:31:53 +00001394 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001395
David Turner8a317cf2006-09-27 07:52:48 +00001396
David Turnere140f142006-10-23 08:56:57 +00001397 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001398 In a default build, the function `FT_Library_SetLcdFilter' returns
1399 `FT_Err_Unimplemented_Feature'; you need to #define
1400 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1401 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001402
Werner Lemberg2c002e12006-09-29 21:31:53 +00001403 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001404
Werner Lemberg2c002e12006-09-29 21:31:53 +00001405 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1406 typedef.
1407 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1408 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001409
Werner Lemberg2c002e12006-09-29 21:31:53 +00001410 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1411 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001412
Werner Lemberg2c002e12006-09-29 21:31:53 +00001413 Handle subpixel rendering.
1414 Simplify function.
1415 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1416 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1417
1418 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1419 pointing to <freetype/ftlcdfil.h>.
1420
1421 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1422 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1423
1424 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001425
Werner Lemberge20df4a2006-09-27 06:29:21 +000014262006-09-26 David Bustin
1427
1428 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1429 correctly. Reported as Savannah bug #17843.
1430
David Turner6f8c6222006-09-26 15:42:44 +000014312006-09-26 David Turner <david@freetype.org>
1432
Werner Lemberg110246c2006-09-26 21:55:44 +00001433 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1434 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1435 horizontal and vertical hinting for the purpose of debugging the
1436 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001437
Werner Lemberg110246c2006-09-26 21:55:44 +00001438 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1439 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001440
Werner Lemberg110246c2006-09-26 21:55:44 +00001441 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1442
1443 * include/freetype/config/ftoption.h, devel/ftoption.h
1444 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1445 we want to compile LCD-optimized rendering code (à la ClearType) or
1446 not. The macro *must* be disabled in default builds of the library
1447 for patent reasons.
1448
1449 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1450 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1451 isn't defined at compile time. This only changes the content of the
1452 rendered glyph to match the one of normal gray-level rendering,
1453 hence clients should not need to be modified.
1454
1455 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001456
Werner Lemberg745ff2c2006-09-19 05:48:02 +000014572006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1458
1459 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1460 LWFN fails and both are available.
1461
David Turnerf3050052006-09-11 12:00:32 +000014622006-09-11 David Turner <david@freetype.org>
1463
Werner Lembergf9644552006-09-12 13:48:10 +00001464 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1465 report their English names through an Apple Roman
1466 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001467
Werner Lembergf9644552006-09-12 13:48:10 +00001468 If the font uses another name entry with language_id == English, it
1469 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001470
Werner Lembergf9644552006-09-12 13:48:10 +00001471 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1472 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001473
Werner Lemberg36d2eab2006-09-05 19:24:34 +000014742006-09-05 Werner Lemberg <wl@gnu.org>
1475
1476 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001477 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001478 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1479 `HAN NOM B.ttf').
1480
1481 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1482
David Turner772e55d2006-09-05 09:45:15 +000014832006-09-05 David Turner <david@freetype.org>
1484
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001485 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001486
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001487 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1488 (TRaster): Remove `count_ex' and `count_ey'.
1489 (gray_find_cell): Remove 2nd and 3rd argument.
1490 (gray_alloc_cell): Merged with `gray_find_cell'.
1491 (gray_record_cell): Simplify.
1492 (gray_set_cell): Rewrite.
1493 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1494 (gray_render_span): Don't use FT_MEM_SET for small values.
1495 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1496 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1497 bitmap scanline.
1498 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001499
David Turneraa557a92006-09-04 16:42:44 +000015002006-09-04 David Turner <david@freetype.org>
1501
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001502 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1503 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001504
Werner Lemberg2d8629b2006-09-03 06:18:45 +000015052006-09-03 Werner Lemberg <wl@gnu.org>
1506
1507 * devel/ftoption.h: Synchronize with
1508 include/freetype/config/ftoption.h.
1509
1510 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1511 variable declaration.
1512 (gray_convert_glyph): Fix compiler warnings.
1513
David Turner6d79f212006-09-01 14:09:35 +000015142006-09-01 David Turner <david@freetype.org>
1515
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001516 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1517 to recognize a few fonts that require the automatic unpatented
1518 loader.
David Turnerbd502952006-09-01 19:05:24 +00001519
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001520 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1521 rasterizer. The speed improvement is between 15% and 25%, depending
1522 on the font data.
1523
1524 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1525 (TCell): Redefine.
1526 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1527 (gray_init_cells): Updated.
1528 (gray_find_cell, gray_alloc_cell): New functions.
1529 (gray_record_cell): Rewritten to use `gray_find_cell' and
1530 `gray_alloc_cell'.
1531 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1532 QSORT_THRESHOLD):
1533 Removed.
1534 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1535 gray_dump_cells): Removed.
1536 (gray_sweep): Rewritten.
1537 (gray_convert_glyph): Rewrite code which used one of the sorting
1538 functions.
1539 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001540
Werner Lembergd898aed2006-08-29 09:50:34 +000015412006-08-29 Dr. Werner Fink <werner@suse.de>
1542
1543 * configure: Make it possible to handle configure options which
1544 have strings containing spaces.
1545
15462006-08-27 David Turner <david@freetype.org>
1547
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001548 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1549 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1550 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1551
1552 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1553 src/truetype/truetype.c, src/truetype/ttdriver.c,
1554 src/truetype/ttgload.c, src/truetype/ttgload.h,
1555 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1556 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1557 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1558
1559 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1560 member `force_autohint'.
1561
1562 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1563
1564 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1565 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001566
Jens Claudiusa787f452006-08-27 11:26:18 +000015672006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1568
1569 Fix miscellaneous compiler warnings.
1570
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001571 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1572 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001573
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001574 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1575 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1576 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001577
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001578 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1579 volatileness of argument to ft_longjmp. Spotted by Werner
1580 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001581
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001582 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1583 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001584
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001585 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1586 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001587
Werner Lembergc4c35b72006-08-27 08:03:46 +000015882006-08-27 Werner Lemberg <wl@gnu.org>
1589
1590 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1591 Reported by Jens.
1592
Jens Claudius088e44e2006-08-22 14:24:30 +000015932006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001594
Jens Claudius088e44e2006-08-22 14:24:30 +00001595 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001596 about addresses of volatile objects passed as function arguments as
1597 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001598
Werner Lembergc4c35b72006-08-27 08:03:46 +00001599 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1600 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001601
1602 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1603 argument `table' a pointer to a volatile object.
1604
1605 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1606 argument `table' a pointer to a volatile object.
1607
Jens Claudius2652bd52006-08-18 17:20:37 +000016082006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1609
1610 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1611 variable `_sfnt' as volatile since it must keep its value across
1612 a call to ft_setjmp.
1613 (gxv_validate): Same for local variables `memory' and `valid'.
1614 (classic_kern_validate): Same for local variables `memory',
1615 `ckern', and `valid'.
1616
1617 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1618 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1619 `jstf', and 'valid'.
1620
1621 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1622 local variable `cmap'.
1623
David Turner9fbfc6a2006-08-16 09:11:31 +000016242006-08-16 David Turner <david@freetype.org>
1625
Werner Lemberg12342992006-08-19 11:18:09 +00001626 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1627 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001628
Werner Lemberg12342992006-08-19 11:18:09 +00001629 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1630 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001631
David Turner33f5f242006-08-16 16:50:55 +00001632
Werner Lemberg12342992006-08-19 11:18:09 +00001633 Improvements to native TrueType hinting. This is a first try,
1634 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1635
1636 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1637 `extra_points2'.
1638
1639 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1640 `orus'.
1641
1642 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1643 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1644 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1645 handle `extra_points2'.
1646
1647 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1648 Remove compiler warning.
1649 (cur_to_arg): Remove macro.
1650 (TT_Hint_Glyph): Updated.
1651 (TT_Process_Simple_Glyph): Handle `orus'.
1652
1653 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1654 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1655 (LOC_Ins_IUP): Renamed to...
1656 (IUP_WorkerRec): This.
1657 Add `orus' member.
1658 (Shift): Renamed to...
1659 (_iup_worker_shift): This.
1660 Updated.
1661 (Interp): Renamed to...
1662 (_iup_worker_interpolate): This.
1663 Updated to handle `orus'.
1664 (Ins_IUP): Updated.
1665
1666 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1667 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001668
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000016692006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1670
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001671 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001672 build ftvalid in ft2demos. This has been inadvertedly changed
1673 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001674
16752006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1676
Werner Lemberg12342992006-08-19 11:18:09 +00001677 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1678 Jens:
1679 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001680
Werner Lemberg12342992006-08-19 11:18:09 +00001681 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1682 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001683
1684 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1685
Jens Claudius9950adc2006-08-13 12:14:36 +000016862006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1687
Werner Lemberg12342992006-08-19 11:18:09 +00001688 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1689 T1_TOKEN_TYPE_KEY.
1690 (T1_FieldRec): Add `dict'.
1691 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1692 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1693 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001694
Werner Lemberg12342992006-08-19 11:18:09 +00001695 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1696 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001697
1698 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1699
1700 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001701 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1702 not T1_TOKEN_TYPE_ANY.
1703 (ps_parser_load_field): Make sure a token that should be a string or
1704 name is really a string or name.
1705 Avoid memory leak if a keyword has been already encountered and its
1706 value is overwritten.
1707 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1708 T1_FIELD_XXX.
1709 (parse_dict): Ignore keywords that occur in the wrong dictionary
1710 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001711
Werner Lemberg12342992006-08-19 11:18:09 +00001712 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1713 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001714
Werner Lemberg12342992006-08-19 11:18:09 +00001715 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1716 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001717
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000017182006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1719
1720 Move creation of field `buildchar' of T1_DecoderRec out of
1721 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1722 of it.
1723
1724 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1725 and `T1_Compute_Max_Advance'.
1726
1727 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1728 Remove field `face', add `len_buildchar'.
1729
1730 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1731 field `buildchar'.
1732
1733 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1734 finisher for T1_Decoder.
1735 (cid_slot_load_glyph): Do not ignore failure when initializing the
1736 T1_Decoder.
1737
1738 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1739 Updated.
1740 (t1_decoder_init): Remove initialization of fields `buildchar' and
1741 `len_buildchar'.
1742 (t1_decoder_done): Remove deallocation of field `buildchar'.
1743
1744 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1745 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1746 T1_Decoder.
1747 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1748 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1749 case of error.
1750
1751 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1752 `buildchar' of T1_FaceRec.
1753
1754 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1755 `buildchar' of T1_FaceRec.
1756
Werner Lemberg1a380e02006-07-14 18:28:08 +000017572006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1758
1759 * freetype2/include/freetype/internal/psaux.h: New macros
1760 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1761 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1762 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1763 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1764 (T1_DecoderRec): New fields `buildchar' and `face'.
1765 (IS_PS_TOKEN): New macro.
1766
1767 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1768 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1769
1770 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1771 `default_design_vector' and `num_default_design_vector'.
1772
1773 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1774 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1775 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1776
1777 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1778 `token' argument to be NULL if we want only to count the number of
1779 tokens.
1780 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1781 want to skip the array.
1782 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1783 want to skip the array.
1784
1785 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1786 support for (partially commented out) othersubrs 19-25, 27, and 28.
1787 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1788 (t1_decoder_done): Release new field `buildchar'.
1789
1790 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1791 functions.
1792 (t1_keywords): Register them.
1793 (t1_allocate_blend): Updated.
1794 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1795 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1796 (parse_dict): Remove `keyword_flags' argument.
1797 Use new macro IS_PS_TOKEN.
1798 Changed function so that later PostScript definitions override
1799 earlier ones.
1800 (t1_init_loader): Initialize new field `keywords_encountered'.
1801 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1802 `len_buildchar'.
1803 Remove `keywords_flags'.
1804
1805 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1806 `keywords_encountered'.
1807 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1808
1809 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1810 New entries for parsing /NDV, /CDV, and /DesignVector.
1811
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000018122006-07-07 Werner Lemberg <wl@gnu.org>
1813
1814 Add many checks to protect against malformed PCF files.
1815
1816 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1817 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1818
1819 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1820 data and check that tables don't overlap (using a simple
1821 bubblesort).
1822 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1823 New macros which give the size of data structures in the data
1824 stream.
1825 (pcf_get_properties): Use rough estimates to get array size limits.
1826 Assign `face->nprops' and `face->properties' earlier so that a call
1827 to PCF_Face_Done can do the clean-up in case of error.
1828 Protect against invalid string offsets.
1829 (pcf_get_metrics): Clean up code.
1830 Adjust tracing message levels.
1831 Use rough estimate to get array size limit.
1832 (pcf_get_bitmaps): Clean up code.
1833 Adjust tracing message levels.
1834 Use rough estimates to get offset limits.
1835 (pcf_get_encodings): Adjust tracing message level.
1836 (pcf_get_accel): Clean up code.
1837
Werner Lemberg8eb05252006-06-27 06:20:01 +000018382006-06-26 Werner Lemberg <wl@gnu.org>
1839
1840 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1841 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1842
Werner Lemberg24703f82006-06-26 19:12:51 +000018432006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1844
1845 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1846 (t1_decoder_parse_charstrings): Operator with
1847 opcode 15 pops its two arguments.
1848 Handle the case where the pops of an othersubr may be part of a
1849 subroutine.
1850 Handle unknown othersubrs gracefully: count their operands and let
1851 the following pop operators push the operands as the results onto
1852 the Type1 stack.
1853 Improve handling of setcurrentpoint opcode.
1854
Werner Lembergc011f4c2006-06-26 09:40:00 +000018552006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1856
1857 The Type 1 parser now skips over top-level procedures as required
1858 for a `Simplified Parser'. This makes the parser more robust as it
1859 doesn't poke around in PostScript code. Additionally, it makes the
1860 FontDirectory hackery in src/type1/t1load.c unnecessary.
1861
1862 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1863 (skip_literal_string): Add FT_Error as return value.
1864 Handle escapes better.
1865 (skip_string): Add FT_Error as return value.
1866 Don't set `parser->error' but return error code directly.
1867 (skip_procedure): New function.
1868 (ps_parser_skip_PS_token): Handle procedures.
1869 Update code.
1870 (ps_parser_to_token): Update code.
1871 (ps_parser_load_field_table): Handle bbox entries also.
1872
1873 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1874 Add commented-out code for synthetic fonts.
1875
Werner Lemberga2da05c2006-06-25 06:27:27 +000018762006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1877
1878 Fix two hinting bugs as reported in
1879 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1880
1881 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1882 `first_point' member.
1883
1884 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1885 `first_point'.
1886 (TT_Process_Composite_Glyph): Always untouch points.
1887
1888 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1889 `first_point' and `last_point' in case of composite glyphs.
1890 (Ins_IUP): Fix computation of `end_point'.
1891
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000018922006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1893
Werner Lembergef3d2c22006-06-25 06:07:14 +00001894 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1895 Mac. The original patch was written by David Sachitano and Lawrence
1896 Coopet, and modified by Sean McBride for MPW compatibility. Only
1897 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001898
Werner Lembergef3d2c22006-06-25 06:07:14 +00001899 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1900 Mac OS X platforms.
1901 (OS_INLINE): Undefine before definition.
1902 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1903 FontAssociation table in FOND resource.
1904 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1905 and fontSize at each entry of FontAssociation table in FOND
1906 resource.
1907 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1908 ffStylOff of FamilyRecord header of FOND resource, the header,
1909 fontSize, fontID at each entry of FontAssociation table, and
1910 StyleMapping table.
1911 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001912
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000019132006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1914
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001915 Public API of TrueTypeGX, OpenType, and classic kern table validator
1916 should return `FT_Err_Unimplemented_Feature' if validation service
1917 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001918 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001919 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1920
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001921 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1922 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1923 unavailable.
1924 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1925 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001926
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001927 * src/base/ftotval.c (FT_OpenType_Validate): Return
1928 FT_Err_Unimplemented_Feature if OpenType validation service is
1929 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001930
Werner Lembergb10e45a2006-06-08 07:32:56 +000019312006-06-08 Werner Lemberg <wl@gnu.org>
1932
1933 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1934 errors.
1935
David Turner5f1f7502006-06-07 05:11:50 +000019362006-06-07 David Turner <david@freetype.org>
1937
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001938 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1939 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1940 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001941
David Turner457b4a82006-06-06 08:14:14 +000019422006-06-06 David Turner <david@freetype.org>
1943
Werner Lemberg4836f952006-06-06 12:54:08 +00001944 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001945
Werner Lemberg4836f952006-06-06 12:54:08 +00001946 We change `ps_unicodes_init' so that it also takes a
1947 `free_glyph_name' callback to release the glyph names returned by
1948 `get_glyph_name'
1949
1950 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1951 Renamed to ...
1952 (PS_GetGlyphNameFunc): This.
1953 (PS_FreeGlyphNameFunc): New typedef.
1954 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1955
1956 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1957 argument.
1958 (cff_sid_free_glyph_name): New function.
1959 (cff_cmap_unicode_init): Updated.
1960
1961 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1962
1963 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1964 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001965
1966
David Turner09717352006-06-04 14:33:08 +000019672006-06-04 David Turner <david@freetype.org>
1968
Werner Lembergd724f202006-06-04 15:17:41 +00001969 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1970 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001971 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001972
Werner Lembergd724f202006-06-04 15:17:41 +00001973 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1974 of `face->num_glyphs' which missed the last glyph, due to
1975 the offset-by-1 computation, since the PFR format doesn't
1976 guarantee that glyph index 0 corresponds to the `missing
1977 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001978
Werner Lemberg33779662006-05-26 06:30:05 +000019792006-05-25 Werner Lemberg <wl@gnu.org>
1980
1981 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1982 `-no-undefined'. Reported by Christian Biesinger.
1983
Werner Lemberg24773d62006-05-20 08:53:13 +000019842006-05-19 Brian Weed <bw@imaginengine.com>
1985
1986 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1987 have debug information, and debug libraries use `C7 compatible'
1988 debug info.
1989
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000019902006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1991
Werner Lemberga6523a62006-05-20 08:47:01 +00001992 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001993 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001994
Werner Lemberga6523a62006-05-20 08:47:01 +00001995 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1996 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001997
1998 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001999 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002000
20012006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2002
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002003 * build/unix/configure.raw: Add a fallback to disable Carbon
2004 dependency, if configured with no options on Mac OS X.
2005
20062006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2007
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002008 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002009 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002010 the second part of Savannah bug #16590.
2011
Werner Lemberg545c4e52006-05-17 22:55:04 +000020122006-05-18 Werner Lemberg <wl@gnu.org>
2013
2014 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2015 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2016
David Turnerdc3ff312006-05-17 12:59:35 +000020172006-05-17 David Turner <david@freetype.org>
2018
Werner Lemberg545c4e52006-05-17 22:55:04 +00002019 This is a major patch used to drastically improve the performance of
2020 loading glyphs. This both speeds up loading the glyph vectors
2021 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002022
Werner Lemberg545c4e52006-05-17 22:55:04 +00002023 We now use inline assembler code with GCC to implement `FT_MulFix',
2024 which is probably the most important function related to the
2025 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002026
Werner Lemberg545c4e52006-05-17 22:55:04 +00002027 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002028
2029
Werner Lemberg545c4e52006-05-17 22:55:04 +00002030 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2031 `cursor' and `limit'.
2032
2033 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2034 New functions.
2035 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2036 [TEST]: Remove.
2037
2038 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2039 code.
2040
2041 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2042 `FT_ZERO'
2043 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2044 (af_glyph_hints_reload: Rewrite recognition of weak points.
2045
2046 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2047 constant values out of the loops.
2048
2049 * src/autofit/aftypes.h: Updated.
2050
2051 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2052
2053 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2054 product to get orientation.
2055
2056 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2057 (FT_Stream_OpenGzip): Use it to handle small files directly in
2058 memory.
2059
2060 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2061 Improve performance.
2062
2063 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2064 `limit'.
2065
2066 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2067 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2068 exceedingly large values of number of contours. Speed up by
2069 reducing the number of loops.
2070
2071 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2072
2073
2074 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2075 used to detect rogue clients from 4 to 16. This is to prevent some
2076 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2077 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002078
Werner Lembergde2d90a2006-05-17 08:54:30 +000020792007-05-17 Werner Lemberg <wl@gnu.org>
2080
2081 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002082 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002083
20842006-05-16 Werner Lemberg <wl@gnu.org>
2085
2086 * docs/PROBLEMS: Updated icl issues.
2087
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002088----------------------------------------------------------------------------
2089
Werner Lemberg42b63b22007-01-21 21:01:33 +00002090Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002091David Turner, Robert Wilhelm, and Werner Lemberg.
2092
2093This file is part of the FreeType project, and may only be used, modified,
2094and distributed under the terms of the FreeType project license,
2095LICENSE.TXT. By continuing to use, modify, or distribute this file you
2096indicate that you have read the license and understand and accept it
2097fully.
2098
2099
2100Local Variables:
2101version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002102coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002103End: